我想获得我所访问的所有城市的列表might在 A 点和 B 点之间经过
输入 -
A点为原点
B点为目的地
Output:
A点和B点之间的路线(这是显而易见的)
AND
距离我的路线较近 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 地图搜索服务和 geonames findNearby 服务),我不知道有任何网络服务提供此功能,因此您必须自己提供。
一种方法是使用 SQL Server 2008 或 SQL Server Azure,加载来自所有国家/地区数据转储的地理名称http://download.geonames.org/export/dump/ http://download.geonames.org/export/dump/。然后,您可以根据路线路径中的点构建 LineString 几何图形,并使用以下查询来查询数据库中的位置列表:
SELECT * FROM allCountries WHERE Location.STDistance(@RoutePath)
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/ http://jkebeck.wordpress.com/2010/06/26/find-near-route-for-bing-maps-powered-by-sql-azure-spatial/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)