Загрузка картографического стиля GL JS в Openlayers 3 - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь добавить настроенную базовую карту GLS JS mapbox (которая была разработана коллегой) внутри существующего кода Openlayers 3, который я написал, хотя у меня возникают проблемы с поиском решения для совместной работы этих двух компонентов.До сих пор я без проблем добавлял слои, как в примере ниже:

      new ol.layer.Tile({
        title: 'Satellite',
        type: 'base',
        visible: false,
        source: new ol.source.XYZ({ //Mapbox layer with API Key
          url: 'https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/256/{z}/{x}/{y}?access_token=API-KEY-HERE'
        })
      })

Однако, когда я хочу добавить собственный стиль Mapbox GL JS, как это, он не работает.

new ol.layer.Tile({
            title: 'CustomStyleMapboxGL',
            type: 'base',
            source: new ol.source.XYZ({
              url: 'https://api.mapbox.com/styles/v1/itatters/cjo09902ya4z92speha95h57d.html?fresh=true&title=true&access_token=API-KEY-HERE#16.0/45.505643/-73.576557/305'
            })
          })
})

Если есть какие-то способы заставить слой в стиле Mapbox GL JS работать с Openlayers 3 (как я пытался в ex.2 или как-то иначе), это было бы очень признательно!Я пытался использовать API Mapbox для всего кода, хотя столкнулся с осложнениями ....

1 Ответ

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

OpenLayers не может анализировать объекты стиля Mapbox из коробки, но библиотека ol-mapbox-style добавляет его поддержку.Использовать его довольно просто:

import createMap from 'ol-mapbox-style';

createMap('map', 'https://api.mapbox.com/styles/v1/itatters/cjo09902ya4z92speha95h57d.html?fresh=true&title=true&access_token=API-KEY-HERE#16.0/45.505643/-73.576557/305')
.then(function(map) {
  // map is an ol/Map instance with the layers from the Mapbox style object
});
...