我有一个非常小的区域地图,我从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的转换