c – 如何将Lat,long转换为XY坐标系(例如UTM),然后将其映射到我的Image的像素空间

我有一个非常小的区域地图,我从Openstreet地图(PNG)和它的OSM(.osm)文件下载,其中包含Lat,long.

现在我想将Lat,long转换为XY坐标系(例如UTM),然后将其映射到我的Image的像素空间,其大小为(600 x 800).我知道这是一个双向的过程,比如知道如何做到这一点.谢谢

解决方法

GPS坐标到像素

>假设这张地图没有穿过本初子午线
>假设像素0,0在左上方,像素600,800在右下方.
>假设地图仅为北半球(地图的任何部分都不是南半球)

>确定800×600图像中最左侧的经度(X)
>确定800×600图像中的最东经度(Y)
>确定经度差(Z = Y – X)
>确定800×600图像中最北纬度(A)
>确定800×600图像中最南端的纬度(B)
>确定经度差(C = A – B)

给定纬度和经度,以确定他们点击了哪个像素:

> J =输入经度
> K =输入纬度
>计算X像素

XPixel = CInt(((Y – J)/ CDbl(Z))* 800)
>计算Y像素

YPixel = CInt(((A – K)/ CDbl(C))* 600)

UTM

这是一个cartographic library应该有助于GPS到UTM的转换

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...