我是JS的新手,下面的查询看起来很简单。
查询:我在地图上画了多个圆圈,我需要获取圆圈中所有可用的标记细节。
为了达到这个目的,我试着从地图上的圆心取长圆的中心,并计算出地图上所有标记的距离。如果(距离<=半径)结束标记是在圆圈中。
提前谢谢..。
发布于 2017-05-16 23:03:17
假设你在某个地方有这样的东西:
var editableLayers = new L.FeatureGroup();还将此选项添加到您的L.Control.Draw中:
edit: {
featureGroup: editableLayers, //REQUIRED!!
remove: false
}正如L.Draw文档所述。
现在你可以搜索你的圆圈了:
var circleList = [];
editableLayers.eachLayer( function (l) {
if (l instanceof L.Circle) {
circleList.push(l);
}
});搜索标记的方法相同:
var markerList = [];
editableLayers.eachLayer( function (l) {
if (l instanceof L.Marker) {
markerList.push(l);
}
});现在,您需要在任何圆圈内的任何标记:
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。
不要犹豫地阅读传单医生,它包含了我使用过的几乎所有的东西,而且写得很好。
https://stackoverflow.com/questions/43994389
复制相似问题