javascript - 如何使用 mapbox-gl-Draw 创建 8 个点的矩形?
问题描述
我对使用 Mapbox-gl-Draw 有一个独特的问题。Mapbox Draw 允许您轻松创建多点多边形,但是我需要它只使用 8 个点,因为我在其他地方使用的算法接受 8 个 lnglat 元素。我想知道是否有可能当单击绘图按钮时,它会在屏幕上显示一个由 8 个点组成的矩形,并且能够拖动每个点?
解决方案
而不是试图弄乱 mapbox-gl-draw,您应该只获取输出,然后以编程方式添加中点。您可以为此目的使用turf 的功能。midpoint
就像是:
const coords = rectangle.geometry.coordinates[0];
const newcoords = [];
coords.forEach((point, i) => {
newcoords.push(point);
if (i < coords.length - 1) {
newcoords.push(midpoint(point, coords[i+1]).geometry.coords);
}
});
rectangle.geometry.coordinates = newcoords;
推荐阅读
- swift - 运行 macOS 可执行文件时如何访问“标准输出”?
- oracle - 如何列出单个员工的所有经理姓名
- python - 使用 Python 的内置方法进行字符串格式化
- latex - 伊莎贝尔的文件准备
- python - scrapy异常CloseSpider关闭爬虫功能
- visual-studio-code - 更改命令面板的键绑定
- php - cpanel中的输入过程总是满的
- c# - 为什么我的主类无法访问?(遗产)
- html - 为什么我的 HTML 电子邮件代码在不同的宽度上无法正常工作?
- php - PDO::__construct(): php_network_getaddresses: getaddrinfo failed: nodename or servname provided, or not known