Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将Lat、long转换为XY坐标系(例如UTM),然后将其映射到图像的像素空间_C++_Openstreetmap_Mercator - Fatal编程技术网

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

C++ 如何将Lat、long转换为XY坐标系(例如UTM),然后将其映射到图像的像素空间,c++,openstreetmap,mercator,C++,Openstreetmap,Mercator,我有一个非常小的区域地图,我从Openstreet地图(PNG)下载了它,还有它的OSM(.OSM)文件,其中包含它的Lat,long 现在,我想将Lat,long转换为XY坐标系(例如UTM),然后将其映射到图像的像素空间,其大小为(600 x 800)。我知道这是一个双向的过程,我想知道如何做到这一点。谢谢GPS坐标到像素 假设这张地图没有穿过本初子午线 假设像素0,0位于左上方,像素600800位于右下方 假设地图仅为北半球(地图的任何部分都不是南半球) 确定800x600图像中最左边的

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

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

GPS坐标到像素
  • 假设这张地图没有穿过本初子午线
  • 假设像素0,0位于左上方,像素600800位于右下方
  • 假设地图仅为北半球(地图的任何部分都不是南半球)

  • 确定800x600图像中最左边的经度(X)
  • 确定800x600图像中最东边的经度(Y)
  • 确定经度差(Z=Y-X)
  • 确定800x600图像中的最北纬度(A)
  • 确定800x600图像中最南端的纬度(B)
  • 确定经度差(C=A-B)
给定纬度和经度,以确定他们单击的像素:

  • J=输入经度
  • K=输入纬度

  • 计算X像素

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

  • 计算Y像素

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

  • UTM
    这是一个有助于GPS到UTM转换的例子

    谢谢你的回答..与你上面所说的类似,我已经将我的Lat、Long转换为图像X和Y。但如果你看到我的问题,第一件事是如何将Lat,Long转换为现实世界的X,Y(UTM),然后将其映射到我的图像X,Y。。。因为我使用UTM(x,y)进行某些处理。有关转换为UTM的帮助,请参阅此地图投影库。对不起,我误解了你的问题。我不知道去UTM然后去像素的解决方案很有趣,但是这里的成本是$,第3步和第4步是什么?CInt,CDbl??CInt将内部值转换为整数,CDbl将内部值转换为双精度浮点