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

Ver*_*ion 8 c++ openstreetmap mercator

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

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

Bri*_*ter 8

GPS坐标到像素

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

    1. 确定800x600图像中最左侧的经度(X)
    2. 确定800x600图像中的最东经度(Y)
    3. 确定经度差(Z = Y - X)
    4. 确定800x600图像中最北纬度(A)
    5. 确定800x600图像中最南端的纬度(B)
    6. 确定经度差(C = A - B)

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

  1. J =输入经度
  2. K =输入纬度

  3. 计算X像素

    XPixel = CInt(((Y - J)/ CDbl(Z))*800)

  4. 计算Y像素

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

UTM

这是一个制图库,应该有助于GPS到UTM的转换