google-maps - 谷歌地图 - 找到靠近我路线的城市

标签 google-maps google-maps-api-3 bing-maps

我想获取在 A 点和 B 点之间可能经过的所有城市的列表

输入 -
A点为原点
B点作为目的地

输出:
A点和B点之间的路线(很明显)

距离我的路线不到 X 英里的城市/城镇/地点的列表。

我想向用户展示一个可能的航点列表(兴趣点、历史遗迹、公园等)

任何想法如何做到这一点?

最佳答案

我相信你需要在一个两阶段的过程中做到这一点:

第一步是计算代表 A 和 B 之间路线的折线(正如您所说,这很明显)。您可以使用 Bing map REST (http://msdn.microsoft.com/en-us/library/ff701717.aspx) 或 SOAP (http://msdn.microsoft.com/en-us/library/cc966826 .aspx) 路由服务,例如。

当您从这些服务中的任何一个请求路由时,请确保您指定要在结果中包含完整的路由路径(REST 的 rpo 参数或 SOAP 的 RoutePathType.Points 参数)。这将为您提供用于构建路线路径的所有点的数组 - 否则您将只获得行程点的摘要(即,只有您需要做某事的路线上的那些点 - 改变道路等)

获得点数组后,第二步是确定所有位于这些点之间绘制的路径距离 x 内的位置。虽然有许多网络服务允许您查询位于单个点 x 距离内的地点(例如,包括 Bing map 搜索服务和地名 findNearby 服务),但我不知道有任何网络服务提供此功能,所以你必须自己提供。

一种方法是使用 SQL Server 2008 或 SQL Server Azure,加载来自 http://download.geonames.org/export/dump/ 的 geonames allCountries 数据转储。 .然后,您可以从路线路径中的点构造 LineString 几何,并使用以下查询查询数据库中的地点列表:

SELECT * FROM allCountries WHERE Location.STDistance(@RoutePath) <= 1000;

Johannes Kebeck 发布了一个使用此方法的示例,该方法基于 Bing SOAP 路由服务和 SQL Azure,您可以在此处找到:http://jkebeck.wordpress.com/2010/06/26/find-near-route-for-bing-maps-powered-by-sql-azure-spatial/

关于google-maps - 谷歌地图 - 找到靠近我路线的城市,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5983462/

相关文章:

java - 如何更改 map 中标记的颜色?

javascript - 获取 Google Places Nearby Search 的 JSON

javascript - Google map 上的文本框值更改更新标记

google-maps - 标记错误地更改了缩放位置

javascript - 我怎样才能为 map 上的所有形状设置边界?

jquery - 是否可以替换 map 标记图像?

maps - 如何检测 Microsoft Bing map 中的缩放变化

Android ActionBar 第一次用 Google Map 加载 Fragment 时变黑

php - 如何使用 api 在 Google map 中仅显示一个国家或特定区域?

c# - 从存储在数据库中的位置向 bing map 添加形状(bing map ajax 控件)