gpt4 book ai didi

php - 如何使用多个坐标在谷歌地图中绘制多边形

转载 作者:行者123 更新时间:2023-12-04 03:05:21 25 4
gpt4 key购买 nike

我有一个数组,其中包含显示在谷歌地图中的不同位置的纬度和经度。现在我需要制作一个通过所有这些点的多边形。我在 google apis 中找到了很好的教程,但该示例仅适用于 3 点。

任何人都可以帮助我或向我推荐任何我可以创建多边形而不在线之间相交的教程。

谢谢。

最佳答案

您可以使用 Graham scan找到坐标点的凸包并将其传递给多边形的方法。

Graham scan

算法有javascript实现:
https://github.com/brian3kb/graham_scan_js

上面的 repo 也有一个如何用谷歌地图实现这个的例子:
https://github.com/brian3kb/graham_scan_js/blob/master/example/app1.js


下面是上面的基本实现:

function getConvexHullCoords(coords) {
const convexHull = new ConvexHullGrahamScan();

coords.forEach(item => {
convexHull.addPoint(item.lng, item.lat);
});

return convexHull.getHull().map((item) => {
return {
lat: item.y,
lng: item.x
};
});
}

const coords = [
{lat: 37.772, lng: -122.214},
{lat: 21.291, lng: -157.821},
{lat: -18.142, lng: 178.431},
{lat: -27.467, lng: 153.027}
];

new google.maps.Polygon({
paths: [getConvexHullCoords(coords)],
fillColor: '#000',
fillOpacity: 0.5
});

关于php - 如何使用多个坐标在谷歌地图中绘制多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45056207/

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