本文主要是介绍java将经纬度转换为平面坐标,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
(米勒投影)算法
public static double[] MillierConvertion(double lat, double lon) { double L = 6381372 * Math.PI * 2;//地球周长 double W=L;// 平面展开后,x轴等于周长 double H=L/2;// y轴约等于周长一半 double mill=2.3;// 米勒投影中的一个常数,范围大约在正负2.3之间 double x = lon * Math.PI / 180;// 将经度从度数转换为弧度 double y = lat * Math.PI / 180;// 将纬度从度数转换为弧度 y=1.25 * Math.log( Math.tan( 0.25 * Math.PI + 0.4 * y ) );// 米勒投影的转换 // 弧度转为实际距离 x = ( W / 2 ) + ( W / (2 * Math.PI) ) * x; y = ( H / 2 ) - ( H / ( 2 * mill ) ) * y; double[] result=new double[2]; result[0]=x; result[1]=y; return result; }
/ lon 经度,西经为负数
// lat 纬度,南纬是负数
function millerXY (lon, lat){var L = 6381372 * Math.PI * 2, // 地球周长W = L, // 平面展开后,x轴等于周长H = L / 2, // y轴约等于周长一半mill = 2.3, // 米勒投影中的一个常数,范围大约在正负2.3之间x = lon * Math.PI / 180, // 将经度从度数转换为弧度y = lat * Math.PI / 180; // 将纬度从度数转换为弧度// 这里是米勒投影的转换y = 1.25 * Math.log( Math.tan( 0.25 * Math.PI + 0.4 * y ) );// 这里将弧度转为实际距离x = ( W / 2 ) + ( W / (2 * Math.PI) ) * x;y = ( H / 2 ) - ( H / ( 2 * mill ) ) * y;// 转换结果的单位是公里// 可以根据此结果,算出在某个尺寸的画布上,各个点的坐标return {x : x,y : y};
}
米勒圆柱投影 介绍 :http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#//003r00000039000000
这篇关于java将经纬度转换为平面坐标的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!