我遇到的问题是我想从开始到结束突出整条街道。例如,如果我进入Av。 Montaigne,巴黎,法国在Google地图上,我希望整个街道都能突出显示。 似乎Google地图不支持此选项,我必须使用折线实现算法来标记街道。但是,我不确定是否有一种简单的方法来获取有关街道的样子的信息,因为街道可能是弯曲的,所以这是一个问题。
通过将街道名称传递给API,是否有可能获得简单易用的信息从头到尾突出显示街道?我使用的地图不一定是Google地图,它们可以是OpenStreetMap上的Yahoo,Bing。
目标实际上是这样的:
答案 0 :(得分:2)
据我所知,没有一个常见的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”。然后,您可以如下绘制路线点中的折线:
这种方法存在两个问题:首先,您需要知道街道两端相交的道路的名称(或者识别街道两端的其他方式),其次,在这两个交叉点之间选择的路线可能实际上并不遵循街道本身(例如,如果街道是单向的,并且您尝试在另一个方向上计算路线)。