使用传单点在多边形中指向
Point in Polygon using leaflet-pip
我正在尝试,给定一个包含大量点的.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 © <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);
}
});
此代码示例按纬度、经度顺序提供坐标。如传单pip自述中所述,传单pip要求坐标按longitude, latitude
顺序排列,与GeoJSON和其他地理空间格式相同。
相关文章:
- 单点高库存滚动条问题
- Javascript删除除前导字符、单点字符和数字以外的所有字符
- 如何在ionic应用程序中正确实现单点登录
- 高图表没有点标记,但显示单点或不连续点
- 不显示高图表单点数据
- 带有 Firefox 的 Surface Pro 3 - 具有单点触摸触发器触摸/鼠标事件,而不是滚轮事件
- 单点高图表上的多个数据点
- 表单点击功能可在提交前检查变量
- 如何使用 Dropbox 的单点登录
- 使用 javascript 模拟多个表单点击
- 通过谷歌/脸书代币使用disqus进行单点登录验证
- SPA和SSO(单点登录)中无状态身份验证的性能
- 为什么可以't我访问一个带单点的整数的性质
- 在UIWebView中检测单点,但仍然支持文本选择和链接
- 不能获得唯一的数据基于唯一的表单点击发送到php与AJAX
- 如何实现基于活动目录的电子单点登录
- Yammer REST API与单点登录
- 通过IE单点登录
- jQuery won't隐藏表单点击
- 触摸设备,单点和双击事件处理程序jQuery/Javascript