Загрузка векторного слоя листов на карту Leaflet?


9

Мне нужно загрузить векторный слой листов на карту Leaflet.

Векторная плитка - это векторный слой листов о последовательностях Mapillary (см. Https://a.mapillary.com/#vector-tiles ...), а шаблон URL плитки:

https://d2munx5tg0hw47.cloudfront.net/tiles/{z}/{x}/{y}.mapbox

векторная мозаика использует векторный формат мозаики Mapbox.

Я искал в сети, но я не нашел образец: я видел, что это можно сделать с помощью Mapbox, но если это возможно, я бы хотел использовать только Leaflet

Ответы:


11

В Leaflet 0.7x это легко сделать с помощью Leaflet.MapboxVectorTileплагина . Вам просто нужно указать шаблон URL в urlопции конфигурации. Документация плагина подробно описывает другие доступные параметры конфигурации . Чтобы добавить данные Mapillary, вы должны использовать их следующим образом:

var config = {
  url: "https://d2munx5tg0hw47.cloudfront.net/tiles/{z}/{x}/{y}.mapbox"
};
var mapillarySource = new L.TileLayer.MVTSource(config);
map.addLayer(mapillarySource);

Вот скрипка, показывающая результат:

http://fiddle.jshell.net/nathansnider/sj12o4hj/

Для листовка 1.0x, вы хотите использовать Leaflet.VectorGrid «S L.vectorGrid.protobufметод. У него есть несколько вариантов стилей, описанных в документации, но для простой загрузки плиток вы должны использовать это так:

var url = 'https://d2munx5tg0hw47.cloudfront.net/tiles/{z}/{x}/{y}.mapbox';
var mapillaryLayer = L.vectorGrid.protobuf(url).addTo(map);

Пример скрипки:

http://fiddle.jshell.net/nathansnider/mwmpmLo7/


Большой!! работает. Просто, понятно и с примером. Лучший!
Чезаре

3
@nathansnider Ваш JSFiddle недоступен.
Хотелось бы иметь хороший

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.