给定随机坐标点,构造确定边缘点的多边形

时间:2014-09-18 13:56:05

标签: javascript polygon leaflet minecraft

我在Leaflet地图上有一组无组织点,在我的实现中,代表我的Minecraft服务器上的地图节点(可在http://loka.minecraftarium.com/map查看)。目前,我的实现仅采用点并使用传单在点周围绘制一个圆圈,以粗略地指示控制区域。

然而,这有点丑陋并且不能代表期望的最终结果,即在给定一组数据的情况下从边缘点绘制多边形区域。然而,由于积分的无组织性,我没有简单的方法来宣布这些点上的“边缘点”,因为它们将源于原始来源(市中心),并且当玩家扩展其领土时。

我的问题:是否有一种方法给定一组这些点来迭代它们以自动确定边缘点和某种顺序,以便然后输入Leaflet多边形位置并绘制表示控制的多边形区域而不仅仅是一堆带有交叉圆圈的点。

我已经看过一些关于鞋带配方的东西,但是我不确定是否/如何在内部有点的方面起作用。

以下是当前的结果: Current Result

期望的结果(当然没有圈子) Desired Result (without the circles inside of course)

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

我是从user3413723得到的。它适用于lat / lng对象。 https://npm.runkit.com/hull.js 这就是我在Google地图中使用它的方式:

// in main.js
Hull = require("hull.js");

// ... results is my object array with lat/lng properties
var hull    = Hull(results, 50, ['.lng', '.lat']),
    hullMap = new google.maps.Polygon({
        paths: hull,
        strokeColor: '#FF0000',
        strokeOpacity: 0.8,
        strokeWeight: 2,
        fillColor: '#FF0000',
        fillOpacity: 0.35
    });

hullMap.setMap(map);