【问题标题】:Given random coordinate points, construct a polygon of determined edge points给定随机坐标点,构造确定边缘点的多边形
【发布时间】:2014-11-12 21:55:12
【问题描述】:

我在 Leaflet 地图上有一组杂乱无章的点,在我的实现中,这些点代表我的 Minecraft 服务器地图上的领土节点(可查看:http://loka.minecraftarium.com/map)。目前,我的实现只取点,并使用小册子在点周围画一个圆圈来粗略地表示控制区域。

然而,这有点难看,并且不代表所需的最终结果,即根据一组数据从边缘点绘制多边形区域。然而,由于这些点的无组织性,我没有简单的方法来声明这些点上的“边缘点”,因为它们将来自原始来源(市中心),并随着玩家扩展他们的领土而出现。

我的问题:有没有办法给定一组这些点来迭代它们以自动确定边缘点和某种顺序,以便然后提供 Leaflet 多边形位置并绘制一个表示控制的多边形区域,而不仅仅是一堆点周围画有相交的圆圈。

我已经看过一些关于鞋带公式的东西,但我不确定它是否/如何在该区域内设置点。

以下是当前结果:

期望的结果(当然里面没有圆圈)

非常感谢!

【问题讨论】:

标签: javascript polygon leaflet minecraft


【解决方案1】:

我从 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);

【讨论】:

    猜你喜欢
    • 2019-12-27
    • 1970-01-01
    • 2013-05-16
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 2020-07-31
    相关资源
    最近更新 更多