我有这个错误
"leaflet.js:5,Uncaught :无法读取未定义的属性'lat‘“。
这些点显示与风格和所有东西都很好,但只要我想点击一个点,什么都没有显示,我在开发工具中得到了这个错误。
知道少了什么吗?
谢谢
var points = new L.featureGroup();
function round(value, decimals) {
return Number(Math.round(value + 'e' + decimals) + 'e-' + decimals);
}
var vectorTileOptions_poi = {
rendererFactory: L.canvas.tile,
maxZoom: 20,
zIndex: 100,
vectorTileLayerStyles: {
sliced: function (properties, zoom){
var dist = properties.length
return {
radius: dist <= 150 ? 1.5:
dist >150 && dist <= 500 ? 2:
dist >500 && dist <= 1000 ? 3:
dist >1000 ? 4: 0,
fillColor: dist <= 150 ? '#ffffff':
dist >150 && dist <= 500 ? '#00cc00':
dist >500 && dist <= 1000 ? '#ffff00':
dist >1000 ? '#ff4d4d': '#66ffff',
color: dist <= 150 ? '#ffffff':
dist >150 && dist <= 500 ? '#00cc00':
dist >500 && dist <= 1000 ? '#ffff00':
dist >1000 ? '#ff4d4d': '#66ffff',
fill: true,
weight: 1,
fillOpacity: 0.8,
}
}
},
interactive: true,
};
$.getJSON("/xyz/test/points.geojson", function(json) {
var newPoints = L.vectorGrid.slicer(json, vectorTileOptions_poi)
.on('click', function(e) {
var properties = e.layer.properties;
L.popup()
.setContent(
'<b>Point Data</b>' +
'<br>Amount: <b>'+ properties.TOTAL + '</b>' +
'<br>Distance: <b>' + (round(properties.length/1000, 2)) + ' km</b>' +
'<br>Name: <b>' + properties.name + '</b>' +
'<br>Zipcode, City: <b>' + properties.zipCode + ', ' + properties.City + '</b>'
)
.setLatLng(e.latlng)
.openOn(map);
L.DomEvent.stop(e);
})
newPoints.addTo(point)
})发布于 2019-10-24 14:21:02
Leaflet.VectorGrid并没有得到真正的维护,但是如果您查看该项目的github,您将看到几个开发人员继续针对各种问题(包括这个问题)实现拉请求(这些请求尚未集成)。
您可以添加layer.getLatLng = null;在Leaflet.VectorGrid.js中,要解决这个问题,请参见下面的内容:
_createLayer: function(feat, pxPerExtent, layerStyle) {
var layer;
switch (feat.type) {
case 1:
layer = new PointSymbolizer(feat, pxPerExtent);
// [YB 2019-10-23: prevent leaflet from treating these canvas points as real markers]
layer.getLatLng = null;
break;
case 2:
layer = new LineSymbolizer(feat, pxPerExtent);
break;
case 3:
layer = new FillSymbolizer(feat, pxPerExtent);
break;
}
if (this.options.interactive) {
layer.addEventParent(this);
}
return layer;
}https://stackoverflow.com/questions/58072432
复制相似问题