首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在距离线路5公里的范围内充分显示区域

如何在距离线路5公里的范围内充分显示区域
EN

Stack Overflow用户
提问于 2021-08-26 07:48:34
回答 2查看 86关注 0票数 0

我想画一个多边形周围的一条线,显示的面积,是,完全在5公里内的线。

有点像缓冲区显示的区域,总是距离5公里,从一条线,我想显示一个区域,总是在5公里内的整个线-所以面积将比缓冲区小。

现实的情况是,我们现在有旅行限制,这在一定程度上意味着你必须呆在离家5公里以内。因此,我想画一个地区周围的徒步旅行-如果人的房子在该地区,然后他们可以做的全部步行。问题的一部分是,我甚至不知道这类区域被称为什么。

目前使用的是这样的传单和草皮--但这只是一个蒙面缓冲。

代码语言:javascript
复制
                    var mask = turf.polygon([[[90, -55], [170, -55], [170, 10], [90, 10], [90, -55]]]);
                var polygon = turf.mask(turf.buffer(geojsonLines[0], 5, {
                units: 'kilometers'
                }),mask);

                L.geoJSON(polygon, {
                style: function(feature) {
                    return {
                    color: "red"
                    };
                }
                }).addTo(journey_map);

(不是我将如何处理从BBOX延伸超过5公里的轨道--但我会处理这个问题)。缓冲区的图像类似于我想要做的

EN

Stack Overflow用户

回答已采纳

发布于 2021-08-26 18:18:22

我说得对吗?你希望的每一个点都在一个形状上的5公里以内的区域,而不是在5公里范围内的缓冲区--任何形状的点?

如果是这样的话,我不知道有一个现有的操作来计算它,也不知道它是如何被调用的,但是它似乎很容易计算。

如果你看一条线段A,B,以及从这段中的任何一点C到某个远点D的距离,很容易看到CD小于或等于max(AD, BD)。所以,如果D在距离A和B拐角处5公里以内,它就在AB上所有点的5公里以内。三角形中所有点中5公里以内的点应该在三角形每个角的5公里以内。

这导致了简单的(虽然可能不是很有效)算法:取描述一个公园的轨迹或多边形的线串中的所有顶点,将每个顶点分别缓冲5公里,并将所有生成的圆圈(https://turfjs.org/docs/#intersect)相交。求交的结果是在每个顶点5公里以内,从而在所有点的5km范围内。

一个简单的优化是首先计算形状的凸包-这将简化一个典型的轨迹,减少顶点的数目,以及你需要交叉的圆圈数。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68934580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档