0

我有一个应用程序,它使用leaflet.js 和geoJSON 创建一个大的多边形区域,然后使用jQuery 和leaflet.js 的组合填充较小的圆圈。

这是创建圆圈的地方:

$.getJSON('http://localhost/json/json.php', function(data){
        $(data.payload.incidents).each(function(key, value) {
            var lati = data.payload.incidents[key].incident.locationlatitude; 
            var longi = data.payload.incidents[key].incident.locationlongitude; 
            var title = data.payload.incidents[key].incident.incidenttitle;
            var desc = data.payload.incidents[key].incident.incidentdescription;
            var mark = L.circle([lati, longi], 50,{
                color: 'red',
                fillColor: '#f03',
                fillOpacity: 0.5
                }).addTo(map); 


            mark.bindPopup("<b>"+title+"</b></br></br>"+desc).openPopup();
            console.log("success");
            }
        })

    });

我试图使用这行代码来检测圆圈:

if(geojson.getBounds().contains(mark){console.log('mark detected')}

但 .contains() 似乎只用于矩形。

这是将多边形添加到地图的位置。(areaData 是 geoJSON)

        var geojson
        geojson = L.geoJson(areaData, {
        style: style,
        onEachFeature: onEachFeature
    }).addTo(map);
4

1 回答 1

0

你能试试这个

if(geojson.getBounds().contains(mark.getLatLng())){console.log('mark detected')}

因为 contains 需要一个 latLong 对象,而您正在提供一个 L.circle 对象

于 2013-10-10T14:16:48.073 回答