我已经阅读了Stack Overflow上的每个问题,我可以找到并在网上找到的每个例子都可以将GeoJSON矢量图块添加到传单地图中。不幸的是,我仍然无法绕过它,更不用说让我的数据工作了。
我有一个GeoJSON(here)有很多分。我可以将它作为Leaflet中的一个层添加得很好,所以我确信它是一个具有真实值的有效文件。
我已尝试geojson-vt和leaflet vector grid。
geojson-vt不断返回错误:
Uncaught ReferenceError: z is not defined at <anonymous>:1:30
使用此代码:
geoJson = {data}
var tileOptions = {
maxZoom: 18,
tolerance: 5,
extent: 4096,
buffer: 64,
debug: 0,
indexMaxZoom: 0,
indexMaxPoints: 100000,
};
var tileIndex = geojsonvt(geoJson, tileOptions);
var tile = tileIndex.getTile(z, x, y);
我在诊断时遇到了很多麻烦,因为我发现的所有示例都没有显示他们的数据,但也没有人引用定义z,x和y,这些都不是GeoJSON的必需值宾语。我错过了什么?
从another question of mine我了解到Leaflet矢量网格与GeoJSON点有错误。我设法改变了一些源代码来解决初始错误,但现在得到了超过1000个错误,如:
Error: <path> attribute d: Expected number, "MNaN,47.5aundefin…".
代码:
L.vectorGrid.slicer(geoJson).addTo(map)
如何将GeoJSON点作为矢量切片图层添加到传单贴图中?有没有人有任何数据作为参考的简单示例?任何帮助或其他调查方向将不胜感激。
答案 0 :(得分:1)
我已经看过几分钟了,我得出结论Leaflet.VectorGrid
中存在影响切片点的错误。 I've opened a bug report with relevant information
答案 1 :(得分:0)
我能够通过Leaflet.VectorGrid.Slicer
解决我遇到的问题。
首先,我下载了Leaflet.VectorGrid.js
源代码并更改了显示的行here(请注意,这对应于VectorGrid github site上可用源代码中的第1483行到第1495行)。
然后,在排除故障后,我发现如果在调用radius
时添加了L.vectorGrid.slicer
选项,则会将GeoJSON点添加到地图中。这是有效的代码:
var layer = L.vectorGrid.slicer(geoJson, {
vectorTileLayerStyles: {
sliced: {
radius: 1,
}
}
}).addTo(map);