使用 leaflet-pip 在多边形中指向
Point in Polygon using leaflet-pip
我正在尝试,给定一个 .json 包含很多点,确定每个区域有多少(可能返回 dictionary),它们在另一个 .json 文件中定义。
我是根据这个例子做的:
https://www.mapbox.com/mapbox.js/example/v1.0.0/point-in-polygon/
但是,我无法让它工作。
这一行:
var layer = leafletPip.pointInLayer(this.getLatLng(), states, true);
Returns 对于我的测试用例是空的。
这是一个 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 © <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);
}
});
此代码示例按纬度、经度顺序提供坐标。由于 documented in the leaflet-pip readme,leaflet-pip 需要 longitude, latitude
顺序的坐标,与 GeoJSON 和其他地理空间格式相同。
我正在尝试,给定一个 .json 包含很多点,确定每个区域有多少(可能返回 dictionary),它们在另一个 .json 文件中定义。
我是根据这个例子做的:
https://www.mapbox.com/mapbox.js/example/v1.0.0/point-in-polygon/
但是,我无法让它工作。
这一行:
var layer = leafletPip.pointInLayer(this.getLatLng(), states, true);
Returns 对于我的测试用例是空的。 这是一个 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 © <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);
}
});
此代码示例按纬度、经度顺序提供坐标。由于 documented in the leaflet-pip readme,leaflet-pip 需要 longitude, latitude
顺序的坐标,与 GeoJSON 和其他地理空间格式相同。