我想要一张从A点到B点的路上可能经过的所有城市的名单
投入-
点A为原点
B点为目的地
输出:
A点和B点之间的路线(这很明显)
和
离我的路线近X英里的城市/城镇/地方的清单。
我想向用户提供一份可供考虑的可能途径点(名胜古迹、公园等)。
有什么办法吗?
发布于 2011-05-13 10:39:43
我相信你需要在两阶段的过程中:
第一步是计算一条代表A和B之间的路线的折线(正如你所说的,这是显而易见的)。例如,您可以使用Bing Maps 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参数)。这将为您提供一个用于构建路由路径的所有点的数组,否则您只会得到路线点的摘要(即只有路线上需要做的那些点--更改道路等)。
一旦得到了点的数组,第二步就是确定在这些点之间画出的路径范围内的所有位置。虽然有许多‘ll服务允许您查询位于单个点x距离范围内的位置(例如,Bing地图搜索服务和geonames findNearby服务),但我不知道有任何’ll服务提供这种功能,所以您必须自己提供。
这样做的一种方法是使用Server 2008或Server,使用从allCountries加载的geonames http://download.geonames.org/export/dump/数据转储。然后,您可以从路由路径中的点构造一个LineString几何,并使用如下查询查询数据库中的位置列表:
从allCountries Location.STDistance(@RoutePath) <= 1000中选择*;
Johannes Kebeck在必应SOAP路由服务和SQL的基础上发布了一个使用这种方法的示例,您可以在这里找到:http://jkebeck.wordpress.com/2010/06/26/find-near-route-for-bing-maps-powered-by-sql-azure-spatial/
https://stackoverflow.com/questions/5983462
复制相似问题