2013-10-09 3 views
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')} 

но .Contains() появляется только для использования для прямоугольников.

Здесь многоугольники добавляются к карте. (AreaData является GeoJSON)

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

Это слишком широкий ... что именно элементы? Как они созданы? Вы еще что-нибудь пробовали? У вас есть код для обмена? – Lix

+0

polygon.getBounds() возвращает ограничивающий прямоугольник. Легко проверить, находится ли точка внутри ящика; вот что содержит. Проверка многоугольника сложнее. Здесь есть хорошая дискуссия. Http://stackoverflow.com/questions/217578/point-in-polygon-aka-hit-test – kielni

ответ

0

Вы можете попробовать это

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

поскольку содержит нужен LatLong объект и вы обеспечиваете объект L.circle