我关注了 https://medium.com/@mrgrantanderson/https-medium-com-serving-vector-tiles-from-django-38c705f6
可以从geoDjango将mvt切片投放到地图框。
运行查询
cursor.execute("SELECT ST_AsMVT(tile) FROM (SELECT osm_id,building,ST_AsMVTGeom(geom,TileBBox(%s,%s,3857)) FROM nepal_khokanabuildings ) AS tile",[zoom,x,y])
因为我的模型项目是ESPG:3857
Vectors似乎没有加载到地图上,api请求工作正常。 我也尝试过从Geoserver提供矢量文件,也没有运气。
这是我的JS文件
var map = new mapboxgl.Map({
container: 'map',style: 'mapbox://styles/mapbox/light-v10',zoom: 12,center: [85.294688,27.634106],});
var mapillarySource = {
type: 'vector',tiles: [
'http://0.0.0.0:8000/nepal/api/v1/data/nepal/{z}/{x}/{y}.mvt'
],minzoom: 0,maxzoom: 14
};
map.on('load',function() {
map.addSource('mapillary',mapillarySource);
map.addLayer({
'id': 'mapillary','type': 'fill','source': 'mapillary','source-layer': 'water','paint': {
"fill-color": "#00ffff"
}
});
});
map.addControl(new mapboxgl.NavigationControl());
</script>