定位坐标X,Y与经纬度转换公式
部分与第三方对接项目,第三方采用了将终端定位X,Y转换为经纬度的对接方式,要求提供将定位点X,Y转换为经纬度的公式;
相关公式如下:
涉及参数:终端定位实际【x,y】,地图参考点1【x1,y1,经度1,纬度1】,地图参考点2【x2,y2,经度2,维度2】
经度=经度1+(x/1000 - x1)/(x2-x1)(经度2-经度1)
维度=维度1+(y/1000-y1)/(y2-y1)(维度2-维度1)
代码示例:
/**
- 3D建模地图或者倾斜摄影地图下
- 定位坐标转换为WGS84坐标
- @param x 定位坐标x,毫米单位
- @param y 定位坐标y,毫米单位
- @param p1x 标记点1坐标x,米单位
- @param p1y 标记点1坐标y,米单位
- @param g1x 标记点1经度,wgs84
- @param g1y 标记点1纬度,wgs84
- @param p2x 标记点2坐标x,米单位
- @param p2y 标记点2坐标y,米单位
- @param g2x 标记点2经度,wgs84
- @param g2y 标记点2纬度,wgs84
- @return 转换后的经纬度坐标
- /
public static double[] joysuchCoordinateToWGS84_3D(int x, int y, double p1x, double p1y, double g1x, double g1y, double p2x, double p2y, double g2x, double g2y) {
double lng = g1x + ((x / 1000.0 - p1x) / (p2x-p1x)) * (g2x-g1x);
double lat = g1y + ((y / 1000.0 - p1y) / (p2y-p1y)) * (g2y-g1y);
double[] result = new double[2];
result[0]=lng;
result[1]=lat;
return result;
}
转载请注明作者和出处,并添加本页链接。
原文链接:
//svn.seekcy.com:33382/723