Векторные плитки mvt при отображении на MapboxGL - PullRequest
0 голосов
/ 23 января 2020

Я следовал https://medium.com/@mrgrantanderson / https-medium-com-Обслуживание-vector-tile-from- django -38c705f6

, чтобы подавать плитки mvt на карту из geo Django.

С запущенным запросом

   cursor.execute("SELECT ST_AsMVT(tile) FROM (SELECT osm_id, building, ST_AsMVTGeom(geom, TileBBox(%s, %s, %s, 3857)) FROM  nepal_khokanabuildings ) AS tile", [zoom, x, y])

, поскольку мой модельный проект ESPG: 3857

Векторы не загружаются на карту, запрос 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>

Ответы [ 2 ]

1 голос
/ 23 января 2020

Существует множество проблем, которые могут проявляться как «мои слои не отображаются».

Вы можете проверить каждую из этих вещей:

  • - это создаваемый слой до того, как карта готова? (ожидание события "load")
  • генерируются ли правильные запросы плитки?
  • эти запросы выполняются успешно?
  • они возвращают фактические файлы .pbf?
  • содержат ли они данные в нужном месте и в правильной проекции?
  • содержат ли они слой с именем, которое вы ожидаете? (в данном случае «вода»)
  • содержат ли они данные ожидаемого вами типа? (полигоны в данном случае)

Мне любопытно узнать о хосте 0.0.0.0, но я также подозреваю, что имя слоя может быть неправильным.

Если ваши запросы на плитки выполняются успешно, вы можете попробовать использовать https://stevage.github.io/vector-inspector/ для их проверки, хотя у вас могут быть проблемы с тем, что эта страница обслуживается по HTTPS, а ваши локальные плитки - по HTTP.

0 голосов
/ 21 апреля 2020

Используйте следующее,

"id": "postgis-tiles-layer",
"source-layer": "default",
...