0
我有一個應用程序使用leaflet.js和geoJSON來創建一個大的多邊形區域,然後使用jQuery和leaflet.js混合使用更小的圓圈填充。是否有可能在jQuery中檢測像多邊形這樣的大形狀是否包含較小的圓形形狀?
這是被創建的圈子:
$.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')}
但是。載()出現只用於爲矩形。
這是將多邊形添加到地圖的位置。 (areaData是GeoJSON的)
var geojson
geojson = L.geoJson(areaData, {
style: style,
onEachFeature: onEachFeature
}).addTo(map);
這是太寬泛什麼...這些元素究竟是什麼?他們是如何創建的?你有沒有嘗試過任何東西?你有任何代碼可以分享嗎? – Lix
polygon.getBounds()返回一個邊界框。檢查一個點是否在一個盒子內很容易;這就是包含的內容。檢查多邊形更困難。這裏有一個很好的討論http://stackoverflow.com/questions/217578/point-in-polygon-aka-hit-test – kielni