如何在同一区域的3D插图上映射2D地图中的点

时间:2014-09-03 12:06:15

标签: algorithm google-maps map 3d gps

我正在寻找有关如何构建算法的建议,该算法将地图上的任何点映射到另一个地图上的某个点,并根据需要进行插值。

让我更好地澄清我具体需要的一个例子......

我在真正的自上而下的地图上有一组元素和路径(想想谷歌地图或任何类似gps的系统),我有另一个非自上而下的同一区域的表示。具体来说,我正在制作一个典型的滑雪胜地地图,如滑雪道和斜坡,如this one

这第二张地图更像是插图,它通常是一段山脉的三维表示。通常选择视角以便提供整个滑雪场的最清晰的视野,并且不能保证尺寸或比例实际上是正确的。它更像是一种艺术作品,而不是精确的地图。

我希望便携式设备能够使用" real"在此地图上映射自己。他们从GPS芯片收到的坐标。

我显然认为"映射"过程基于在两个地图之间提供一定数量的参考点。地图的角落,每个景观,空中道路,特定建筑物,山顶的开始和结束......我对算法的投入越多,它可能就越精确。

显然,棘手的部分是它能够在硬编码参考点之间映射所有内容,方法是查找最接近的参考值并平均其间的所有内容。

我确信这经常在很多类似的环境中完成(想想游戏经常需要映射显示玩家位置等的东西)但我不知道在哪里寻找一个具体的例子。教程,示例代码及其背后的数学理论的任何链接都会很棒。

1 个答案:

答案 0 :(得分:2)

我认为可以通过某种变形算法来完成:

  • 识别两个地图中的一组地标,并在两个地图中记录它们的坐标。
  • 对第一张(准确)地图进行三角测量。三角测量也将用于第二张地图。第二张地图的三角形将被扭曲。
  • 当您将一个点从一个地图映射到另一个地图时,请确定该点所在的三角形及其barycentric coordinates r s 。将相同的重心坐标应用于另一个地图中的相同三角形,并且您具有映射点。

在第二张地图中,如果其中一个三角形显示第二张地图中隐藏的区域,则三角形可能会重叠,例如在您的示例中位于St. Christoph附近山坡后面的黄色道路上。您可以将这些区域标记为显式隐藏。

显然,你想要的准确度越高,你需要的三角测量的顶点就越多。然后,您需要一些方法来快速识别三角形。