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

前端之家收集整理的这篇文章主要介绍了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的转换

原文链接:https://www.f2er.com/c/119208.html

猜你在找的C&C++相关文章