我有一个页面,其中包含一个包含起始位置和结束位置的地图。我在他们之间运行一条路线,以获得显示路线的漂亮线。我目前正在使用Bing,但也尝试使用Google。我想知道这条路线经过的状态,然后我可以用特定信息覆盖这些状态。
关于如何获得这一点的任何建议都将非常受欢迎。
我正在使用Bing和Google的AJAX SDK。使用js / jquery处理所有本地内容。
答案 0 :(得分: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"]
}
您可以通过在路线上的阵列阵列上使用除法和征服来优化反向地理编码(如果第一个和中间位置的状态相同,则不要在中间点上进行反向地理编码)。 / p>
答案 1 :(得分:1)
MapQuest Directions Web服务有一个stateBoundaryDisplay标志,它将在叙述中明确地将状态边界交叉(即#34;交叉进入状态名称")。您可以通过对叙述步骤的文本搜索轻松地从json / xml响应中提取该信息。
http://www.mapquestapi.com/directions/#advancedoptions
希望有所帮助。
罗马
答案 2 :(得分:0)
您可以使用shapefile和像SharpMap这样的库或像mysql空间,sql server spatial等地理数据库来创建自己的服务。然后,您只需运行一个交叉点查询来发现您的路径运行的状态。这种方法适用于任何多边形集,因此您可以轻松地将解决方案扩展到县,投票区,学区等。