Как добавить тайловый слой на карту с помощью mapboxgl.js

Здесь m добавляем плитку, созданную с помощью tiff

mapboxgl.accessToken ='pk.eyJ1IjoiZ2F1cmF2Y2F0c3RlY2giLCJhIjoiY2l1cGo0MTl4MDAxajJ1bng5a2xieTY0diJ9.0fDXNulI91U85ngSc4jGCg';
var map = new mapboxgl.Map({
  container: 'map',
  style: 'mapbox://styles/mapbox/light-v9',
  zoom: 13,
  center: [-122.447303, 37.753574]
});

map.on('load', function () {
  map.addSource('terrain-data', {
    type: 'raster',
    url:'mapbox://gaurav.2on6cgzq'
  });
  map.addLayer({
    "id": "terrain-data",
    "type": "line",
    "source": "terrain-data",
    "source-layer": "contour",
    "layout": {
      "line-join": "round",
      "line-cap": "round"
    },
    "paint": {
      "line-color": "#ff69b4",
      "line-width": 1
    }
  });
});

Я получаю :

Ошибка: исходный слой «Контур» не существует на исходном «terrain-data», как указано в слое стиля «terrain-data».


person Gaurav Singh    schedule 01.12.2016    source источник
comment
Мне любопытно, почему вы решили использовать растр вместо вектора. Собираетесь ли вы попробовать использовать собственный стиль или, возможно, сэкономить немного памяти?   -  person Billy Baker    schedule 02.12.2016


Ответы (2)


Я не верю, что "source-layer": "contour" вообще применим к растровым источникам. См. https://www.mapbox.com/mapbox-gl-js/example/map-tiles/ Так что избавьтесь от этой строки. Похоже, вам понадобится включить параметр "tileSize": 256 в исходный код.

Также нам не понадобятся параметры макета и раскраски - это варианты для векторных или геодезических источников. Эти типы элементов управления недоступны в растре.

person snkashis    schedule 01.12.2016

Самый простой способ - просто отредактировать слой листов в Mapbox Studio, а затем загрузить его в mapbox.js. Таким образом, все, что вам нужно сделать, это предоставить ссылку на стиль в качестве источника (у Mapbox есть ТОННА документации для этого).

person nsCode    schedule 04.12.2016