刚接触到这个东东,确实头晕!什么地理坐标,投影坐标,屏幕坐标等等.......哎....地理知识中学学过(都不知道咋学的),数学貌似N多年不用也都还给老师了!确实悲哀.....唉....终于认真的研究了一下才算明白是怎么回事了!其实不要管什么地理坐标,投影坐标还是屏幕坐标,搞的你是非要知道天文地理似的才能去动手去做这个东东!原理掌握一个,那就是只用弄明白地理坐标和屏幕坐标的定义规则就OK了...
地理坐标定义规则:X轴(代表经度)向右递增,Y轴(纬度)向上递增,就好比小学学过的平面坐标(貌似又忘了,要重读小学了)吧?向左,向下的规则,这个不用我再阐述了吧,如果你还不明白,那我劝你还是真要去重读小学了....比我更悲哀,嘿嘿,总算找到一个知已啊....不容易啊...
屏幕坐标定义规则:X轴向右递增,Y轴向下递增..
可以看出,地理坐标和屏幕坐标的区别仅仅只是在于Y轴递增方向是相反的...(这就是不同).
好了,现在我们开始转换他们吧. 这里强调一点的就是为了保证精度,地理坐标的度*3600换算成秒,所有的取值用double来计算,最后的结果再转换成int
1.已知道屏幕的高(y)和宽(h),地理坐标区域的范围(maxLon,minLon,maxLat,minLat)..这里我们知道了这些已知的参数...
2.我们可以算出每像素所代表的经度和纬度(有人称这个为比例因子):
公式:scaleX = h/((maxLon-minLon)*3600) ----------X轴上每像素代表的经度秒数;
公式:scaleY = y/((maxLat-minLat)*3600) -----------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 = (maxLat - minLat)*3600/scaleY;
公式:screenLat = (lat - minLat)*3600/scaleY;
公式: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;
分享到:
相关推荐
GIS领域常用地理坐标系统与投影坐标系统的关系与区别,定义参数与转换算法等。适用GIS相关行业数据处理、软件开发相关技术人员、GIS爱好者等。 内部包括: 地理坐标系统 投影坐标系统 ArcGIS坐标转换方法 4参数与7...
老师给我滴!!ARCGIS中坐标转换及地理坐标、投影坐标定义
dll中的方法及其参数有详细描述。 支持地理坐标向投影坐标的转换,以及投影坐标向地理坐标的转换。 主要输入参数为WKID。 如地理坐标系WGS1984的4326转成投影坐标系Beijing1954的2433
该资源主要是实现像素坐标与投影坐标间的转换,转换精度基本为零,转换公式原理及转换测试精度可见:https://blog.csdn.net/weixin_47156401/article/details/124444130?spm=1001.2014.3001.5502
墨卡托投影坐标、手机屏幕像素坐标转换
资源名:matlab投影与坐标转换_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有一定经验的...
dll中方法及其参数均有详细描述。 地理坐标,即经纬度,参数geoWkid=4326的WGS1984 投影坐标,即平面XY,参数prjWkid=2433的北京54
坐标转换工具,能够进行地理坐标和各种投影之间的良好转换,可以一个一个转化,并支持批量转换。
在实际应用中,经常需要将点从投影坐标转换成地理坐标,本范例示范了如何将点从投影坐标转换成地理坐标。
运行WGS84经纬度坐标转Web墨卡托投影坐标程序时,显示如下提示:按回车后,把输入的经纬度坐标转换成墨卡托投影坐标并输出,形式如下(保留小数后面2位):运行W
对点坐标和数据集进行投影坐标系和地理坐标系之间的转换
项目应用中,有时候需要通过Java组件实现将由手持GPS获取到的点对象,此时的点对象为WGS84的地理坐标系,将该坐标系下的点对象添加到投影坐标系中点数据集中,该范例中是将WGS点对象添加到Beijing54大地坐标系下的...
高斯投影坐标转换的正算java代码
ArcGIS中坐标转换及地理坐标、投影坐标的定义.pdfArcGIS中坐标转换及地理坐标、投影坐标的定义.pdfArcGIS中坐标转换及地理坐标、投影坐标的定义.pdf
本软件为智能易用、操作便捷的实用坐标转换软件,有如下功能: 1.北京54坐标系、西安80坐标系、国家2000坐标系和WGS84坐标系的高斯投影正反转换功能。 2.同一坐标系三度投影带与六度投影带之间的相互转换功能。 3...
利用matlab编写的投影与坐标转换程序。
本软件是一款集地图投影、坐标转换、GPS高程拟合和常用测绘工具于一身的专业应用软件。本软件功能强大,主体分四大部分:地图投影、坐标转换、GPS高程拟合和测绘工具。地图投影包括Albers等面积投影、UTM投影、...
Python实现 支持墨卡托投影转地理坐标及地理坐标转墨卡托投影的转换函数 支持Numpy向量计算,可大批量转多对经纬度数据
基于高斯投影正反算,坐标系转换,输入坐标为高斯直角坐标,地理坐标输入格式为D.mmss,精度较高,初学编程~多多指教