【问题标题】:Create directions on a map based on custom data根据自定义数据在地图上创建路线
【发布时间】:2012-06-27 03:08:57
【问题描述】:

所以我想做的是以下几点:

  1. 拥有地图(例如 Google Maps 或 questMaps)。我需要使用哪个 API 并不重要。
  2. 在那张地图上,街道上有一个叠加层。所以说(例如)街道晚上有不好的闪电,它会被涂成红色。如果它有良好的闪电,它将有一个绿色的覆盖层。
  3. 根据叠加层,地图会创建一条自定义路线(例如,用户只想在绿色/光线充足的街道上行走)。

我不知道如何做到这一点(尤其是第 3 步)。

【问题讨论】:

    标签: map overlay routes directions


    【解决方案1】:

    首先,您必须决定需要哪些数据。您如何将某些街道分类为有灯或无灯?如果街道的某些部分光线充足而有些地方没有灯怎么办?您需要知道您所在地区每个路灯的位置吗?灯坏了怎么办?

    确定需要哪些数据后,您需要构建数据集。如果这些数据已经存在,我会感到非常惊讶,因此您可能需要自己收集它。要么去城里做笔记,要么众包项目,要么想出其他方法。

    一旦您收集了数据,就可以了解您希望使用的任何绘图工具的绘图 API。它们都应该在其 API 中具有用于在现有地图上绘制彩色线(用于街道)或点(用于路灯)的函数。

    最后,学习您选择的地图工具的导航 API。你是对的,这是一个艰难的步骤。我知道谷歌地图允许您在请求路线时指定某些航点;也许您的应用可以计算出光线充足的航路点并将它们提供给 Google 地图的路线服务,以影响它生成的路线。

    祝你好运!

    【讨论】:

    • 非常感谢。航点的想法对我来说是一个突破。
    • 很高兴我能帮上忙。如果这对您有用,请考虑支持和/或接受它作为一个好的答案。 stackoverflow.com/faq#howtoask
    【解决方案2】:

    对于自定义路由,您需要阅读“图论”。这忽略了街道地图的地理,并将其视为由边连接的一组交汇点(图论术语中的节点或顶点)。您可以为边缘分配权重 - 这些可以是长度、行程时间、1 和 0 等。任何东西。它们可以与地图上的位置无关。

    因此,对于您的应用程序,您需要为未照明的街道分配较大的权重,为已照明的街道分配较小的权重,然后使用标准的最小权重算法来获取从一个节点到另一个节点的路线。

    【讨论】:

      猜你喜欢
      • 2012-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多