0

我有一张山区地图,http://skimap.org/data/989/60/1218033025.jpg。它包含许多已知点,使用谷歌地图可以很容易地找到这些点的经纬度。我希望能够在地图上固定任何纬度经度坐标,当然是在景观范围内。

为此,我尝试了一种似乎在很大程度上失败的方法。我假设这张地图相当于一张瑞士风景的航拍照片,没有任何关于相机的高度或其他坐标的信息。因此,我假设垂直于相机镜头法线的平面为 Ax+By+Cz-d=0。

我尝试使用已知点找到平面常数。我将我的原点固定在一个点上,海平面上的 z=0。我在景观中取两个已知点,并使用 3D 线的方程,我找到了连接两个已知点的线段在平面上的投影长度。我将它乘以另一个常数 K 以说明在此 3D 图像的静态 2d 表示上调整此长度的大小。可以很容易地找到此屏幕上此图像的 2d 静态表示中两点之间的长度(以像素为单位),并且可以轻松找到连接两点的线的实际长度,因为我可以计算两者之间的距离点及其经纬度和海拔高度。

所以,我最终得到了一个方程,它与屏幕 2d 表示上两点之间的距离直接相关,我们称之为 Ls,以及景观中的实际长度 L。我还有许多其他已知点,所以将它们代入方程应该给我 4 个常量的值。为此,我需要 8 个已知点(已知参数是它们的名称、经纬度和海拔高度),一个是我的原点,第二个是固定参考点。其余 6 个点在 A^2、B^2、C^2、AB、BC 和 CA 中生成 6 个线性方程组。使用在线工具求解系统,我得到的结果是系统有一个唯一的解决方案,所有 6 个常数都为 0。

因此,将地图等同于从飞机上拍摄的航拍照片的假设似乎是错误的。有人可以给我一些指示或任何其他想法来让它工作吗?开放街道地图是否有墨卡托投影?

4

2 回答 2

1

我会说这不可能以自动方式完成。滑雪地图应该被视为图像而不是地图,地图是现实世界到一个平面的投影,因为这不太适合滑雪地图,而是绘制它们。

最好的方法可能是使用已知或估计的坐标在滑雪地图中手动定义许多点,并使用它们来估计它们之间的点。要获得可接受的结果,您可能必须为滑雪图中的每个像素分配坐标。

于 2013-04-26T14:24:05.787 回答
0

您可以执行以下操作:http: //magazin.unic.com/en/2012/02/16/making-of-interactive-mobile-piste-map-by-laax/

我正在解决完全相同的问题。这很难,而且数学很多。花了我几个星期来解决它。插值也是许多手动映射的关键。我会说,对于一座滑雪山来说,至少需要 1000/1500 分才能获得最基本的。因此,除非您可以自动收集这些点(我在做什么!),否则这不是一项微不足道的任务;)

于 2016-03-15T18:37:20.347 回答