【经纬度转换工具】知道经纬度坐标如何转换成XY坐标1、2°31′21.73″S80°15′48...
答案:2 悬赏:50 手机版
解决时间 2021-02-13 08:04
- 提问者网友:两耳就是菩提
- 2021-02-13 00:40
【经纬度转换工具】知道经纬度坐标如何转换成XY坐标1、2°31′21.73″S80°15′48...
最佳答案
- 五星知识达人网友:封刀令
- 2021-02-13 02:11
【答案】 1、1106736.730 X,14597318.744 Y
2、1108833.019 X,14596189.510 Y
3、1099149.898 X,14592382.233 Y
4、1095999.383 X,14596166.535 Y
5、1101570.857 X,14600704.238 Y 追问: 请问是什么转换的 求教 谢谢 追答: 地理坐标定义规则:X轴(代表经度)向右递增,Y轴(纬度)向上递增,就好比小学学过的平面坐标。向左、向下的规则。 屏幕坐标定义规则:X轴向右递增,Y轴向下递增。可以看出,地理坐标和屏幕坐标的区别仅仅只是在于Y轴递增方向是相反的(这就是不同)。 这里强调一点的就是为了保证精度,地理坐标的度*3600换算成秒,所有的取值用double来计算,最后的结果再转换成int。1 已知道屏幕的高(y)和宽(h),地理坐标区域的范围(maxLon,minLon,maxLat,minLat),这里我们知道了这些已知的参数。2 我们可以算出每像素所代表的经度和纬度(有人称这个为比例因子)。 公式:scaleX = ((maxLon-minLon)*3600)/h ----------X轴上每像素代表的经度秒数; 公式:scaleY = ((maxLat-minLat)*3600)/y ----------Y轴上每像素代表的纬度秒数; 这两个比例因子就是两个坐标系之间的关系。 3 很简单的一步了,那就是算出该地理坐标区域中的任何一点(lon,lat)在屏幕上的坐标了。 公式:screenX = lon*3600/scaleX;---------屏幕坐标X轴坐标 公式:screenY = lat*3600/scaleY; ---------屏幕坐标Y轴坐标 还有最后一步,那就是我们要把该地理区域占满占个屏幕该怎么办呢?4 接着我们需要该地理区域占满占个屏幕该怎么办呢 公式:minX = minLon*3600/scaleX;区域左边置最左端 公式:minY = minLat*3600/scaleY; 区域上面置最上端5 当地地理范围区域占满整个屏幕时,我们需要用到第三步计算出来的 screenX和screenY两个参数,该区域中的任何一点的公式如下: 公式:X = screenX - minX = (lon - minLon)*3600/scaleX; 公式:Y = screenMaxLat - screenLat = (maxLat - lat)*3600/scaleY;6 总结: 经纬度转屏幕坐标的最终公式如下: 公式:X = (lon - minLon)*3600/scaleX; 公式:Y = (maxLat - lat)*3600/scaleY; 接着我们由上面的公式可以推出屏幕坐标转经纬度坐标公式如下: 公式:lon = X * scaleX/3600 + minLon; 公式:lat = maxLat - y* scaleY/3600;公式:X = (lon - minLon)*3600/(((maxLon-minLon)*3600)/h); 公式:Y = (maxLat - lat)*3600/(((maxLat-minLat)*3600)/y);
2、1108833.019 X,14596189.510 Y
3、1099149.898 X,14592382.233 Y
4、1095999.383 X,14596166.535 Y
5、1101570.857 X,14600704.238 Y 追问: 请问是什么转换的 求教 谢谢 追答: 地理坐标定义规则:X轴(代表经度)向右递增,Y轴(纬度)向上递增,就好比小学学过的平面坐标。向左、向下的规则。 屏幕坐标定义规则:X轴向右递增,Y轴向下递增。可以看出,地理坐标和屏幕坐标的区别仅仅只是在于Y轴递增方向是相反的(这就是不同)。 这里强调一点的就是为了保证精度,地理坐标的度*3600换算成秒,所有的取值用double来计算,最后的结果再转换成int。1 已知道屏幕的高(y)和宽(h),地理坐标区域的范围(maxLon,minLon,maxLat,minLat),这里我们知道了这些已知的参数。2 我们可以算出每像素所代表的经度和纬度(有人称这个为比例因子)。 公式:scaleX = ((maxLon-minLon)*3600)/h ----------X轴上每像素代表的经度秒数; 公式:scaleY = ((maxLat-minLat)*3600)/y ----------Y轴上每像素代表的纬度秒数; 这两个比例因子就是两个坐标系之间的关系。 3 很简单的一步了,那就是算出该地理坐标区域中的任何一点(lon,lat)在屏幕上的坐标了。 公式:screenX = lon*3600/scaleX;---------屏幕坐标X轴坐标 公式:screenY = lat*3600/scaleY; ---------屏幕坐标Y轴坐标 还有最后一步,那就是我们要把该地理区域占满占个屏幕该怎么办呢?4 接着我们需要该地理区域占满占个屏幕该怎么办呢 公式:minX = minLon*3600/scaleX;区域左边置最左端 公式:minY = minLat*3600/scaleY; 区域上面置最上端5 当地地理范围区域占满整个屏幕时,我们需要用到第三步计算出来的 screenX和screenY两个参数,该区域中的任何一点的公式如下: 公式:X = screenX - minX = (lon - minLon)*3600/scaleX; 公式:Y = screenMaxLat - screenLat = (maxLat - lat)*3600/scaleY;6 总结: 经纬度转屏幕坐标的最终公式如下: 公式:X = (lon - minLon)*3600/scaleX; 公式:Y = (maxLat - lat)*3600/scaleY; 接着我们由上面的公式可以推出屏幕坐标转经纬度坐标公式如下: 公式:lon = X * scaleX/3600 + minLon; 公式:lat = maxLat - y* scaleY/3600;公式:X = (lon - minLon)*3600/(((maxLon-minLon)*3600)/h); 公式:Y = (maxLat - lat)*3600/(((maxLat-minLat)*3600)/y);
全部回答
- 1楼网友:一叶十三刺
- 2021-02-13 03:25
我好好复习下
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯