半径搜索中的地理障碍物

Mic*_*ile 14 gis mapping geospatial

我是新来的,点不好,所以我只能提供50点的赏金.

假设我有一个应用程序搜索某个位置10英里范围内的所有加油站.然而,这个位置的一侧被山脉环绕,您必须开车50英里才能到达.你不想要从山的另一边返回结果.有哪些好的算法/技术可以解决这个问题?我知道点对点搜索你可以使用路径成本,但我不确定半径搜索的技术是什么.

这是一个例子:

替代文字

红线是从40半径的圆弦,-74至41,-72 LAT长(不准确只是说)在40用户,-73进行地理半径搜索一些东西,还隔着李声涵盖领域在康涅狄格州,这是不切实际的.该算法应该知道存在与搜索圆完全相交的和弦而不返回该和弦另一侧的结果.因此,只有绿色区域的点才会返回.

如果程序员定义了这些边界线,这应该能够在没有任何道路网络分析的情况下完成.例如,在某些国家/地区可能存在通过危险区域的区域,您可能希望该区域两侧的人员仅限于该区域.或者国际边界等我只是问这个,因为我很确定人们这样做.

Ben*_*min 8

虽然最好的解决方案是使用例如ArcGIS的网络分析师计算沿着道路网络的距离(而不是直线距离),但是肮脏的黑客攻击是在半径中心和每个站点之间创建直线,然后计算沿着该配置文件的总高程增益(这里给出一个自动执行此操作的脚本).然后,您可以设置一个阈值,以拒绝总高程增益高于某个值的那些阈值(那些您需要越过山脉才能达到的值).

编辑由于您似乎没有使用网络分析,为什么不创建一个栅格成本映射,其中值对应于遍历该地形的难度?这可以基于其他数据(即水体,海拔,土地覆盖等).然后,您可以返回成本最低的工作站,也可以使用成本地图执行select by属性...

另一种选择是创建一个多边形矢量图层,显示不可通过的区域(山脉,水体等),然后在您的位置和半径内的所有工作站之间创建一条线.使用按位置选择,您可以查看该线是否与任何不可通过的多边形相交; 如果是,请取消选择电台.

该任务的最佳工具仍然是网络分析......