gpt4 book ai didi

javascript - Mapbox GL - 如何检查点是否位于旋转边界框内?

转载 作者:行者123 更新时间:2023-12-02 17:26:13 24 4
gpt4 key购买 nike

我使用 Mapbox GL 显示 map ,可以旋转和缩放。

我需要添加标记,但为了速度,我只想添加当前 View 边界框中的标记,并在 View 发生变化时重绘。(边界框不是轴对齐的,但可以是旋转的矩形!)

我可以使用map.getBounds()获取当前 View 的边界框。这将返回 NE Angular 和西南 Angular 的 2 个 LngLat 坐标。

如何检查标记的 LngLat 坐标是否在此框中?

最佳答案

安装依赖项@turf/boolean-point-in-polygon,然后根据边界框点创建一个多边形。

import booleanPointInPolygon from '@turf/boolean-point-in-polygon';
const bounds = map.getBounds();
const boundsGeometry = polygon([
[
[bounds.getNorthWest().lng, bounds.getNorthWest().lat],
[bounds.getNorthEast().lng, bounds.getNorthEast().lat],
[bounds.getSouthEast().lng, bounds.getSouthEast().lat],
[bounds.getSouthWest().lng, bounds.getSouthWest().lat],
[bounds.getNorthWest().lng, bounds.getNorthWest().lat]
]
]);
booleanPointInPolygon(yourPoint, boundsGeometry);

关于javascript - Mapbox GL - 如何检查点是否位于旋转边界框内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45862928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com