8

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

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

4

1 回答 1

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 转换的制图库

于 2011-05-30T04:54:38.267 回答