2

我已经阅读了我可以找到的关于 Stack Overflow 的所有问题以及我可以在网络上找到的每个示例,用于将 GeoJSON 矢量切片添加到传单地图。不幸的是,我仍然无法理解它,更不用说让它处理我的数据了。

我有一个 GeoJSON (这里) 有很多点。我可以在 Leaflet 中添加它作为一个图层,所以我确信它是一个具有真实值的有效文件。

我试过geojson-vt传单矢量网格

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 对象的必需值。我错过了什么?

从我的另一个问题中,我了解到 Leaflet 矢量网格在 GeoJSON 点上存在错误。我设法更改了一些源代码以解决最初的错误,但现在出现了 1,000 多个错误,例如:
Error: <path> attribute d: Expected number, "MNaN,47.5aundefin…".

从代码:
L.vectorGrid.slicer(geoJson).addTo(map)

如何将 GeoJSON 点作为矢量切片图层添加到传单地图?有没有人有任何以数据为参考的简单示例?任何帮助或其他调查方向将不胜感激。

4

2 回答 2

1

我已经看了几分钟,我得出的结论是存在Leaflet.VectorGrid影响切片点的错误。我已经打开了包含相关信息的错误报告

于 2017-06-23T12:27:22.767 回答
0

我能够解决我遇到的问题Leaflet.VectorGrid.Slicer

首先,我下载了Leaflet.VectorGrid.js源代码并更改了此处指示的行(请注意,这对应于VectorGrid github 站点上可用源代码的第 1483 到 1495 行)。

然后,经过故障排除,我发现如果我radius在调用时添加了一个选项L.vectorGrid.slicer,则GeoJSON点被添加到了地图中。这是有效的代码:

var layer = L.vectorGrid.slicer(geoJson, { 
    vectorTileLayerStyles: {
        sliced: {
            radius: 1,
        }
    }
}).addTo(map);
于 2017-06-23T22:41:13.743 回答