将三维地理坐标转换到二维屏幕坐标

来源:互联网 发布:淘宝直通车降价 编辑:程序博客网 时间:2024/05/22 05:05

如何将三维地理坐标如(388691,4103865,4300)的(X,Y,Z)类型的坐标转化为在视口中能够被看见的地理坐标,在OpenGL中虽然可以转化,但是通过缩放之类的操作之后并没有成功,还是将图形或者点画在视口的范围之外,在屏幕视口中看不到。

在网上搜寻之后,得到如下的方法;

方法一:中心点配对法:即视图中心与地理空间中心点匹配,根据给定的地理坐标,计算该点与视野中心点的偏移和比例来进行计算就可以获得屏幕坐标,ArcGIS就是采用的这种方法。

屏幕上点的X坐标=屏幕视口宽度/2+【地图上任一点的X坐标(输入的X地理坐标值)-地图中心点坐标】*缩放系数+0.5

屏幕上点的Y坐标=屏幕视口高度/2+【地图上任一点的Y坐标(输入的Y地理坐标值)-地图中心点坐标】*缩放系数+0.5


方法二:相似比法

屏幕的X坐标=【任意一地理X坐标-地理坐标X最小值】*【屏幕宽/(地理坐标X最大值-地理坐标X最小值)】

屏幕的Y坐标=【屏幕高-(任意一地理Y坐标-地理坐标Y的最小值)】*【屏幕高/(地理坐标X最大值-地理坐标X最小值)】

下面为采用方法二相似比法完成的坐标转换,右图转换的坐标可以在OpenGL中显示,并可以利用这些点进行三角网的构建



0 0
原创粉丝点击