首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用传单画圆的中心和计算2拉龙之间的距离

问用传单画圆的中心和计算2拉龙之间的距离
EN

Stack Overflow用户
提问于 2017-05-16 06:54:12
回答 1查看 1.4K关注 0票数 0

我是JS的新手,下面的查询看起来很简单。

查询:我在地图上画了多个圆圈,我需要获取圆圈中所有可用的标记细节。

为了达到这个目的,我试着从地图上的圆心取长圆的中心,并计算出地图上所有标记的距离。如果(距离<=半径)结束标记是在圆圈中。

  1. 如何确定圆心。
  2. 中心和标记之间的距离是如何计算的?

提前谢谢..。

EN

回答 1

Stack Overflow用户

发布于 2017-05-16 23:03:17

假设你在某个地方有这样的东西:

代码语言:javascript
复制
var editableLayers = new L.FeatureGroup();

还将此选项添加到您的L.Control.Draw中:

代码语言:javascript
复制
edit: {
    featureGroup: editableLayers, //REQUIRED!!
    remove: false
}

正如L.Draw文档所述。

现在你可以搜索你的圆圈了:

代码语言:javascript
复制
var circleList = [];
editableLayers.eachLayer( function (l) {
    if (l instanceof L.Circle) {
        circleList.push(l);
    }
});

搜索标记的方法相同:

代码语言:javascript
复制
var markerList = [];
editableLayers.eachLayer( function (l) {
    if (l instanceof L.Marker) {
        markerList.push(l);
    }
});

现在,您需要在任何圆圈内的任何标记:

代码语言:javascript
复制
var markersInside = [];
var i;
for (i=0; i<markerList.length; i++) {
    var j;
    var m = markerList[i];
    var mposition = m.getLatLng();
    for (j=0; j<circleList; j++) {
        var c = circleList[j];
        var cposition = c.getLatLng();
        var cradius = c.getRadius();
        if (cposition.distanceTo(mposition) <= cradius) {
            markersInside.push(m);
            break;
        }
    }
}

这是一把小提琴,它人为地声明featureGroup。

不要犹豫地阅读传单医生,它包含了我使用过的几乎所有的东西,而且写得很好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43994389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档