Отличия примера VectorTiles - PullRequest
       25

Отличия примера VectorTiles

0 голосов
/ 13 декабря 2018

Я новичок в реализации Карт в WebApps.Я начал реализовывать простую Карту VectorTile через OpenLayers, и я нашел другой пример для ее реализации.

Во-первых, у нас есть Страница Мастерской OpenLayers https://openlayers.org/workshop/en/vectortile/map.html Первый пример работает, но яхочу реализовать стиль с Mapbox.Поэтому я попробовал это дальнейшее объяснение: https://openlayers.org/workshop/en/vectortile/bright.html Это не работает вообще, это не берет Стиль.Это старый пример?

Итак, я искал другие примеры.И нашел это: https://cloud.maptiler.com/maps/basic/openlayers Это работает с одной картой, но я хочу две карты, и когда я реализую две карты, вторая перекрывается с первым стилем.

У кого-то есть работающийпример с собственным сервером?

Чего я не понимаю, почему есть какой-то пример, когда нам не нужно реализовывать библиотеки, такие как OL, в заголовке и почему есть пример, который говорит, что вам просто нужна какая-то строкакоды для реализации VectorTile Map с Mapbox, и другие используют, например, метод «выборки» и формат MVT.

Формат MVT предназначен для отображения VectorTiles со страницы мастерской, на которой написано:

const layer = new VectorTileLayer({
  source: new VectorTileSource({
    attributions: [
      '<a href="http://www.openmaptiles.org/" target="_blank">&copy; OpenMapTiles</a>',
      '<a href="http://www.openstreetmap.org/about/" target="_blank">&copy; OpenStreetMap contributors</a>'
    ],
    format: new MVT(),
    url: `https://free-{1-3}.tilehosting.com/data/v3/{z}/{x}/{y}.pbf.pict?key=${key}`,
    maxZoom: 14
  })
});
map.addLayer(layer);

Затем он говорит, удалите все в файле .js и реализуйте только

const map = apply('map-container', './data/bright.json');

Это не работает, потому что нет ссылки на olms.js и у нас нет метода выборкипоэтому я действительно не понимаю, о чем они говорят

Почему мы иногда используем метод fetch () в VectorTiles, а иногда мы можем просто пропустить его и использовать apМетод ply () из olms.js?

Я очень смущен.

Это то, что я использую в данный момент, создал второй экземпляр карты, а вторая карта принимает части стилейпервая карта.

var styleJson = 'https://maps.tilehosting.com/styles/basic/style.json?key=0CrAfR2pgm6V6hYu3CEj';
    var map = new ol.Map({
      target: 'map',
      view: new ol.View({
        center: ol.proj.fromLonLat([0, 0]),
        zoom: 1
      })
    });
olms.apply(map, styleJson);

1 Ответ

0 голосов
/ 13 декабря 2018

Посмотрите на Github repo , метод apply возвращает объект ol.Map и инициирует много для вас, как описано в Параметрах.

Итак, у вас есть два решения, реализующиху вас есть собственное решение для обработки векторных плиток и применения собственной стратегии для стиля или использования стиля ol-mapbox для обработки стиля Mapbox и преобразования его в спецификацию Ol.

...