javascript - 查找坐标是否在多边形内
问题描述
我想知道给定的坐标(纬度和经度)是否在给定的 4 个坐标内。
即,如果我有 A、B、C、D 和 E 的纬度、经度,并且我想检查 E 是否在 A、B、C 和 E 之内。
我怎样才能做到这一点 ?
我试图从Google Map Coordinates LatLngBound 类中查看这个示例 - 包含。
我可以看到的例子就像
var bounds = new google.maps.LatLngBounds(
new google.maps.LatLng(54.69726685890506,-2.7379201682812226),
new google.maps.LatLng(55.38942944437183, -1.2456105979687226)
);
var center = bounds.getCenter(); // still returns (55.04334815163844, -1.9917653831249726)
var x = bounds.contains(center); // now returns true
它只有 2 个坐标,如 A&B。没有C&D的坐标怎么可能?
解决方案
这是因为这是使用LatLngBounds
它创建一个矩形,而不是一个多边形。如果您有一个盒子的两个角,则可以假设其他两个角。您只需要指定对角。在您的示例中,您只需将 A 和 D 或 B 和 C 作为一对发送,其他两个可以忽略。如果您需要一个多边形,那么您想创建一个多边形,然后确定它是否包含带有google.maps.geometry.poly.containsLocation(point, polygon)
.
推荐阅读
- reactjs - 自定义有关某些信息的块样式 | 反应
- c# - 在面向消费者代码的 NuGet 库中使用源生成器
- node.js - 如何在不推送 .env 文件的情况下使用环境变量构建 docker-image
- python - BST(二叉搜索树)反向级别顺序遍历没有给我正确的答案/结果
- python-3.x - Groupby 在 plotly 中为第三列而不是 x 和 y 轴的一部分
- r - 我在使用 R:Shiny 和 observeEvent 函数时遇到问题
- android - AWS Textract 检测行而不是块
- verilog - 带切换的 Verilog 随机函数
- yarnpkg - 纱线升级后,纱线不再适用于 MacOS Catalina
- php - php中的压缩zip文件不显示拉丁字符