从地图中以常规方式收集 GPS 坐标

Collecting GPS coordinate in regular way from a map

我从事项目建筑识别系统的工作。想请教有经验的人,从地图上采集GPS数据。

我想将地图划分为网格,每个网格的面积为 30 米 * 30 米,我想存储中心 GPS 坐标(即点(15、15)

最好的方法是什么?

这是一张演示我需要的图片。

这可没那么简单:

有两种方式:

专业解答:

使用该国家/城市的 UTM 坐标系绘制 30x30 网格。 UTM 以米为单位,是一个平面笛卡尔坐标系,而纬度/经度是球面坐标系,在 x,y 方向不是线性的。 对齐您的网格,使其与完整的 UTM 坐标相对应。

然后你需要一个方法来从 latitude/longitude WGS84 转换为 UTM(希望是 WGS84,但在某些国家/地区使用其他椭圆体)

地图显示软件应该是apple使用UTM坐标系

更简单的:

继续使用经纬度坐标并计算 latitudinalGridWithDegrees 以度为单位的测量值,对应于 30m(在地图/城市/城市的中心)
由于 lat 和 lon 不使用相同的比例(1 度纬度 differecne 与 1 度经度不同米 - 仅在赤道处),另外计算 longitudinalGridWithDegrees.
您将获得两个不同的值(它们相差 cos(mapCenterLatitudeRadians) 系数)。 要计算此值,要么了解地理计算,要么简单地使用一个函数,该函数从起点按给定的半径和方向创建偏移点。以地图中心为偏移点(起点)。
创建一个偏移量为 30m 且航向 = 0° 的点,然后通过减去并存储在 latitudinalGridWithDegrees
中来测量纬度差异 使用 heading = 90 做同样的事情,并测量纵向差异并存储在 longitudinalGridWithDegrees.

现在您可以使用这两个变量的值作为纬度和经度步长绘制网格。

然后这些给出了这样一个正方形的角点,你总是使用纬度和经度作为地图软件的接口。

如果你生活在特殊的countries/continents,比如澳大利亚或挪威,那里的大陆每年漂移高达1m,那就更难了。 其他大陆每年仅漂移 1 毫米,您和所有其他应用程序都会忽略这一点。

每个解决方案的优点/缺点

简单的解决方案:
- 网格在地图的角落不是正方形,但可能对城市不可见
- 网格单元仅在地图中心恰好 30m/为偏移计算选择的参考点)
+ 更容易实现
+ 地图软件界面更简单且始终受到支持

专业解答。
+ 网格将匹配专业纸质地图
+ 网格单元始终正好是 30m
- 需要地理变换软件或方法
- 不清楚地图显示软件是否提供 UTM(大多数情况下不提供)

不过,也许更容易分配要测量的路号和门牌号,支持匹配更多或更少的网格。