【问题标题】:Google maps - find cities close to my route谷歌地图 - 找到靠近我路线的城市
【发布时间】:2011-05-12 19:33:38
【问题描述】:

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

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

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

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

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

有什么想法吗?

【问题讨论】:

  • 你能在服务器端做这个计算吗?如果是这样,我有一些建议......

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


【解决方案1】:

我相信您需要分两步进行:

第一步是计算代表 A 和 B 之间路线的折线(正如您所说,这很明显)。您可以使用 Bing 地图 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 范围内的所有位置。虽然有许多网络服务可以让您查询位于 individual 点 x 距离内的地点(例如,包括 Bing 地图搜索服务和地名 findNearby 服务),但我不知道任何提供此功能的网络服务,因此您必须自己提供。

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

SELECT * FROM allCountries WHERE Location.STDistance(@RoutePath)

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

【讨论】:

  • 很好的答案,阿拉斯泰尔。如果这也可以在谷歌地图中完成,有什么想法(Alastair 或其他任何人)??
  • @yairgr 你介意发布答案吗..我正在谷歌地图中寻找类似的解决方案。谢谢
猜你喜欢
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-21
  • 1970-01-01
  • 2010-11-09
相关资源
最近更新 更多