Mapnik Vector Tiles стили - PullRequest
       72

Mapnik Vector Tiles стили

1 голос
/ 27 сентября 2019

Я пытаюсь построить свой собственный сервер векторных плиток, используя Mapnik.Теперь я создал стиль XML с использованием Tilemill и экспортировал его для включения в сервер узла Mapnik.

Ниже кода сервера для рендеринга плиток te .mvt.

app.get('/tiles/:z/:x/:y.mvt', (req, res, next) => {
  var projection = '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs';
  var map = new mapnik.Map(256, 256, projection);
  map.load('./mapgather-style/mapgather.xml', {strict: false}, function(err, map) {
    if(err) {
      console.log(err);
    }
    let vtile = new mapnik.VectorTile(parseFloat(req.params.z), parseFloat(req.params.x), parseFloat(req.params.y));
    map.render(vtile, {}, function(err, response) {
      if (err) { console.log(err) }
      res.setHeader('Content-Encoding', 'deflate');
      res.setHeader('Content-Type', 'application/vnd.vector-tile');
      zlib.deflate(response.getData(), (err, mvt) => {
        if(err) { console.log(err) }
        res.send(mvt);
      });
    })
  })
})

Я также создал карту Leaflet с плагином leaflet.vectorgrid для рендеринга векторных плиток.Запрос http://localhost:8080/tiles/{z}/{x}/{y}.mvt возвращает плитки, но без стилей. Только синие линии, как вы можете видеть на скриншоте ниже.

enter image description here

I 'Я понял, что я могу стилизовать плитки, используя плагин Vector Grid.Но мне интересно, возможно ли предварительно отрендерить стиль с сервера.В Tilemill я создал стиль, но кажется, что Mapnik не включает этот стиль в ответ .mvt.

Возможно ли вообще предварительно визуализировать стили карты?Надеюсь, что кто-то может помочь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...