我有一个geoJSON文件,使用这个npm包将其转换为矢量切片
。 我使用const tileIndex = geojsonvt(geoJSON)
。 该geoJSON文件的格式如下,并且可以无错误地进行转换。
const geoJSON = {
type: 'FeatureCollection',
crs: {
type: 'name',
properties: { name: 'urn:ogc:def:crs:OGC:1.3:CRS84' }
},
features: [
{
properties: [Object],
geometry: [Object],
type: 'Feature',
_id: '5ed7b221a61a4b2970433932'
},
... 1840 more items
]
}
我获得的转换后结果(geoJSON 矢量瓦片)如下 -
const tiles = {
options: {},
tiles: {
'0': {
features: [Array],
numPoints: 540529,
numSimplified: 3,
numFeatures: 1940,
source: null,
x: 0,
y: 0,
z: 0,
transformed: false,
minX: 0.5162953202777778,
minY: 0.316725863688461,
maxX: 0.5338655772222223,
maxY: 0.34955196703359503
},
'1': { ... }
},
tileCoords: [
{ z: 0, x: 0, y: 0 }, { z: 1, x: 1, y: 1 },
{ z: 1, x: 1, y: 0 }, { z: 2, x: 3, y: 1 },
{ z: 2, x: 3, y: 0 }, { z: 2, x: 2, y: 1 },
{ z: 3, x: 5, y: 3 }, { z: 3, x: 5, y: 2 },
{ z: 3, x: 4, y: 3 }, { z: 3, x: 4, y: 2 },
{ z: 4, x: 9, y: 5 }, { z: 4, x: 9, y: 4 },
{ z: 4, x: 8, y: 5 }, { z: 5, x: 17, y: 11 },
{ z: 5, x: 17, y: 10 }, { z: 5, x: 16, y: 11 },
{ z: 5, x: 16, y: 10 }, { z: 4, x: 8, y: 4 },
{ z: 2, x: 2, y: 0 }, { z: 1, x: 0, y: 1 },
{ z: 1, x: 0, y: 0 }
]
}
在将一个拥有5000个图层的巨大GeoJSON文件转换成矢量切片后,我将这些数据发送到客户端,在客户端使用React.js和Mapbox*渲染地图。我使用以下代码来渲染地图,但是我一直没有找出问题所在。报错信息如下:
error: layers.jsx-layer-0: layer "jsx-layer-0"必须指定一个"source-layer"
。<Source type="vector" tiles={data.tiles} >
<Layer {...dataLayer}/>
</Source>
我已经仔细阅读了 Mapbox 的文档,但仍然找不到我的问题所在。希望得到帮助,非常感谢。