Clo*_*die 1 mapnik mapbox-gl-js
我将文件转换为通过的处理时间超过 2 秒120 MB geojsonprotobufMapnikVector Tile 节点绑定。
在另一端提供原始geosjon文件需要不到 200 毫秒。
正常吗?如果是,那么提供矢量切片有什么意义geojson(我正在查看它mapbox-gl-js)?
这是我的代码的摘录:
// Load GeoJson into memory
var fs = require("fs");
var content = JSON.parse(fs.readFileSync("us_counties.json"));
// Initialise Mapnik and mercator object
mapnik.register_default_fonts();
mapnik.register_default_input_plugins();
var mercator = new SphericalMercator({
size: 256
});
// Vector Tile Router
router.get('/:z/:x/:y.pbf', function(req, res) {
var bbox = mercator.bbox(
+req.params.x,
+req.params.y,
+req.params.z,
false,
'4326'
);
// Convert GEOJSON to protobuf VectorTile and Serve
var vtile = new mapnik.VectorTile(+req.params.z, +req.params.x, +req.params.y)
vtile.addGeoJSON(JSON.stringify(content), 'fixture_layer')
res.setHeader('Content-Encoding', 'deflate')
res.setHeader('Content-Type', 'application/x-protobuf')
zlib.deflate(vtile.getData(), function(err, pbf) {
res.send(pbf);
})
});
Run Code Online (Sandbox Code Playgroud)
GeoJSON 和矢量切片作为 Mapbox GL 的数据格式各有优缺点。
如果 GeoJSON 对你有用,我鼓励你使用它!请注意您的用户可能无法快速下载 120 MB 的情况。
| 归档时间: |
|
| 查看次数: |
1799 次 |
| 最近记录: |