我从Openstreetmap中提取了一些国家公园。但现在我想知道入口在哪里。Openstreetmap有一些标记,但并不经常使用。
所以我说:进入国家公园的入口是一条穿越公园边界的道路。一定是真的:你要去公园。我唯一能想到的缺点是,这可能是一条为员工开辟的私人道路,但这一比例应该很小。

那么,找到这些观点的最佳方法是什么呢?
我猜:我知道公园的界限。这样我就可以下载公园里所有的路了。然后,我可以使用"光线投射算法“对所有路段的所有道路在公园,看看它是否跨越一条边界。那是一条通往公园的路。然而,这可能会非常缓慢。如果你有一个很大的公园,里面有很多道路,你可能需要很长时间才能检查所有的路段。
有更聪明的方法吗?
发布于 2015-08-10 14:17:42
您可以使用立交桥涡轮用于这项任务:下面的解决方案将确定所有的方式,这与国家公园关系的边界相交。
试试立交桥涡轮!http://overpass-turbo.eu/s/aSN
只需导航到您感兴趣的区域,并点击“运行”。
下面简要解释一下这个查询是如何工作的:
// restrict search to current bounding box
[bbox:{{bbox}}];
// get all relations with tag boundary = national_park
rel[boundary=national_park];
// get all ways in this relation and store it in inputset boundaryways
way(r)->.boundaryways;
// now get all highway ways, which intersect our ways in boundaryways
way[highway](around.boundaryways:0);
// exclude ways with tag highway=* which are part of the boundary relation
(._; - way.boundaryways[highway];);
// print result
out geom;发布于 2015-08-10 12:31:30
现代电脑速度真快。光线投射算法相当便宜。除非你需要检查数以十亿计的点,否则这不会是什么大问题。
一个简单的优化是对公园边界线段进行排序。如果沿着y轴投射射线,然后在最低的x坐标上对它们进行排序。对于所检查的每个点,当线段的最低x坐标大于点的x坐标时,您可以停止检查。
https://stackoverflow.com/questions/31909933
复制相似问题