2010-03-22 69 views
5

我有一张地图上有开始和结束位置的页面。我在他们之间运行一条路线以获得显示路线的漂亮线路。我目前使用Bing,但也尝试过使用Google。我想知道这条路线经过哪些州,然后我可以用这些特定的信息覆盖这些州。我的路线经过哪些状态?

有关如何获得此建议的任何建议将不胜感激。

我对Bing和Google都使用AJAX SDK。用js/jquery处理所有本地的东西。

回答

2

您可以在Google Maps API上使用reverse geo-code请求来确定某个特定点的状态。因此,我想您可以处理您使用方向请求返回的点数组,并提取每个点的状态。

在V2 API,这将是:

results.AddressDetails.AdministrativeArea.AdministrativeAreaName 

我认为这是v3更直观一点。您可以检查的结果AddressComponents阵列找到合适的类型:

{ 
    "long_name":"California", 
    "short_name":"CA", 
    "types":["administrative_area_level_1","political"] 
} 

您可以通过使用鸿沟优化反向地理编码和位置的路线上的阵列上征服(如果状态为相同首先和中间位置,然后不要在中间点上进行反向地理编码)。

+0

有可能是更有效的方法来做到这一点(自定义服务也许?),我会有兴趣看到替代品。但这是我对这个问题的第一反应。 – RedBlueThing 2010-03-22 23:46:35

+0

+1:分而治之是一个非常好的主意 – 2010-03-23 09:26:29

+0

@ daniel-vassallo谢谢丹尼尔。 – RedBlueThing 2010-03-23 10:23:23

0

您可以使用Shapefile和类库(如SharpMap或地理数据库,如mysql空间,sql服务器空间等等)来创建自己的服务。然后,只需运行交集查询即可发现路线通过哪些状态。这种方法适用于任何多边形集合,因此您可以轻松地将解决方案扩展到县,投票区,学区等。

1

MapQuest Directions web service具有stateBoundaryDisplay标志,它将明确地将状态边界交叉(即“在叙述中穿越国名“)。您可以轻松地从json/xml响应中获取该信息,并使用叙述步骤的文本搜索。

http://www.mapquestapi.com/directions/#advancedoptions

希望有所帮助。

罗马

相关问题