yai*_*rgr 5 google-maps bing-maps google-maps-api-3
我想得到一份我可能在A点和B点之间通过 的所有城市的清单
输入 - 
作为目的地的
点A作为原点
B.
输出:
A点和B点之间的路线(很明显)
和
距离我的路线X英里的城市/城镇/地点列表.
我想向用户提供一个可以考虑的航路点列表(兴趣点,历史遗址,公园等)
任何想法如何做到这一点?
我相信您需要分两个阶段来完成此操作:
第一步是计算一条代表 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 内的所有位置。虽然有许多网络服务允许您查询单个点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) <= 1000;
Johannes Kebeck 发布了一个基于 Bing SOAP Route 服务和 SQL Azure 使用此方法的示例,您可以在此处找到该示例: http: //jkebeck.wordpress.com/2010/06/26/find-near-route-for-bing -maps-powered-by-sql-azure-spatial/
| 归档时间: | 
 | 
| 查看次数: | 3766 次 | 
| 最近记录: |