2015-12-09 7 views
0

Я пытаюсь, учитывая .json, содержащий большое количество точек, определить, сколько есть в каждом регионе (возможно, возвращающая словаря), которые определены в другом .json файл.точки в многоугольнике с помощью листовки-пип

Я делаю это основано на этом примере:

https://www.mapbox.com/mapbox.js/example/v1.0.0/point-in-polygon/

Однако, я не могу заставить его работать.

Эта линия:

var layer = leafletPip.pointInLayer(this.getLatLng(), states, true); 

Возвращает пустой для моего теста. Вот jsfiddle воспроизводя мой код:

http://jsfiddle.net/Pe5xU/346/

map = L.map('map').setView([40.658528, -73.952551], 10); 

// Load a tile layer 
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 
    attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a>', 
    maxZoom: 18, 
    minZoom: 10 
}).addTo(map); 

geojson = L.geoJson(data).addTo(map); 

var all_markers = []; 
var layers = {}; 
$.each(dots, function(index, rec) { 
    var markers = {} 
    if (rec.hasOwnProperty("latitude") && rec.hasOwnProperty("longitude")) { 
    var marker = L.circleMarker([rec.latitude, rec.longitude], marker_style()).addTo(map); 
    all_markers.push(marker); 
    } 
}); 

var all_layers = L.featureGroup(all_markers); 
map.fitBounds(all_layers.getBounds()); 

function marker_style() { 
    return { 
    radius: 4, 
    weight: 0, 
    opacity: 1, 
    color: 'white', 
    dashArray: '3', 
    fillOpacity: 0.7 
    }; 
} 

$.each(dots, function(index, rec) { 
    if (rec.hasOwnProperty("latitude") && rec.hasOwnProperty("longitude")) { 
    var layer = leafletPip.pointInLayer([rec.latitude, rec.longitude], geojson, true); 
    console.log(layer); 
    } 
}); 

ответ

1

Этот пример кода содержит координаты по широте, долготе порядка. Как documented in the leaflet-pip readme, листовки-пип рассчитывает координаты в longitude, latitude заказ, то же, что и GeoJSON и другие геопространственные форматы.

Смежные вопросы