我的问题是我想从头到尾突出整条街。例如,如果我输入 Av。在谷歌地图中的法国巴黎蒙田,我希望整条街道都被突出显示。谷歌地图似乎不支持这个选项,我必须实现算法来使用折线标记街道。但是,我不确定是否有一种简单的方法可以获取有关街道外观的信息,因为街道可能是弯曲的,所以这是一个问题。
是否可以通过将街道名称传递给 API 来获取易于使用的信息来从头到尾突出显示街道?我使用的地图不必是谷歌地图,它们可以是雅虎、OpenStreetMap 上的必应。
目标实际上是这样的:
我的问题是我想从头到尾突出整条街。例如,如果我输入 Av。在谷歌地图中的法国巴黎蒙田,我希望整条街道都被突出显示。谷歌地图似乎不支持这个选项,我必须实现算法来使用折线标记街道。但是,我不确定是否有一种简单的方法可以获取有关街道外观的信息,因为街道可能是弯曲的,所以这是一个问题。
是否可以通过将街道名称传递给 API 来获取易于使用的信息来从头到尾突出显示街道?我使用的地图不必是谷歌地图,它们可以是雅虎、OpenStreetMap 上的必应。
目标实际上是这样的:
据我所知,没有一个常见的 Web 地图 API 提供此功能。想到了两种可能的方法,尽管没有一种方法简单或可靠:
a.) 从 OpenStreetMap 下载您希望能够在应用程序中突出显示的所有道路数据的本地集。然后,当您的用户输入他们正在搜索的街道名称时,搜索 OSM 数据并从相关坐标点构建一条折线并将其绘制在地图上。这种方法的问题在于它需要您托管和维护一组完整的道路数据,并且还需要实施适当的解析算法来处理街道名称的拼写错误等。您可能经常会发现道路名称出现在 Google 地图上例如,它们的拼写与 OSM 中的拼写不同。
b.) 使用路径服务计算从街道一端到另一端的路径,然后绘制一条沿着路径点的折线。例如,使用 Bing Maps Routes API ( http://msdn.microsoft.com/en-us/library/ff701717.aspx ),您可以在相关道路两端的两个十字路口之间绘制一条路线 - 例如“Av . Montaigne & Rond-point des Champs-Élysées”到“Av. Montaigne & Place de L'Alma”。然后,您可以从路线点绘制一条折线,如下所示:
这种方法有两个问题:首先,您需要知道街道在任一端相交的道路名称(或其他识别相关街道末端的方式),其次,在两者之间选择的路线这两个十字路口可能实际上并不沿着街道本身(例如,如果街道是单向的,而您尝试计算另一方向的路线)。