Використовуєте власну базову карту з ArcGIS API для Javascript?


12

Я намагаюся зробити карту за допомогою API Javascript.

Я хочу використовувати власну базову карту, але не можу знайти найпростіший код для цього.

Я завжди бачу щось подібне:

  function init() {
    map = new esri.Map("mapDiv", {
      basemap: "satellite",
      center: [-97.395, 37.537],
      zoom: 11
    });

Але я не хочу використовувати онлайн-бази ArcGIS.

Який код створити карту, на якій я розміщую свою базову карту?


1
Ви створили плитки з власної базової карти?
Mapperz

Відповіді:


12

Довідник по API для карт класу говорить наступне:

Наступні дійсні варіанти: "вулиці", "супутник", "гібрид", "топо", "сірий", "океани", "національно-географічний", "осм". Станом на версію 3.3

Натомість слід просто визначити новий шар служби ArcGIS з плитковою картою та використовувати його наступним чином:

var baseMapLayer = new esri.layers.ArcGISTiledMapServiceLayer("your URL");
map.addLayer(baseMapLayer);

1
@StephenLead setBasemap приймає лише рядковий параметр, тому він не працюватиме!
digz6666

2
@ digz6666 На жаль, я думаю, ти маєш рацію. Я видалю цей коментар
Stephen Lead

2
@StephenLead Я знайшов спосіб. Я відправлю як відповідь. На жаль, для відповіді на це потрібно 10 балів
повтору

@ digz6666: Для створення відповіді вам не знадобиться 10 повторень. Дивіться gis.stackexchange.com/help/privileges
Devdatta Tengshe

5

Для arcgis javascript SDK версії 3.x ви можете використовувати клас esri / basemaps для декларування та реєстрації користувацьких базових карт та використання зі своєю картою: https://developers.arcgis.com/javascript/3/jsapi/esri.basemaps-amd.html

Заявити та зареєструвати власну базову карту:

Basemaps.mybasemap = {
  title: 'My custom basemap',
  thumbnailUrl: 'https://js.arcgis.com/3.22/esri/images/basemap/satellite.jpg',
  //itemId: 'ulas',
  baseMapLayers: [
    { url: "https://services.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapServer" }
  ]
};

Використовуйте власну базову карту в конструкторі карт:

var map = new Map("mapDiv", {
  basemap: "mybasemap",
  center: [-122.69, 45.52],
  zoom: 3
});

Або ви можете застосувати власну базову карту до наявної карти:

map.setBasemap("mybasemap");

Приклад повного коду: https://codepen.io/digz6666/pen/wPwPbW

Для arcgis javascript SDK версії 4.x ви можете використовувати esri / Basemap.

Оголосити шар базової карти та базову карту:

var baseLayer = new MapImageLayer({
  url: "https://services.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapServer"
});
var myBasemap = this.esri.basemap({
  baseLayers: [baseLayer],
  title: 'My custom basemap',
  id: 'my_custom_basemap'
});

Застосувати базову карту до існуючого об’єкта карти:

map.basemap = myBasemap;

2

Не потрібно вказувати вбудовану базову карту. Додайте власну базову карту як такий шар.

var map;
require(["esri/map", "esri/layers/ArcGISTiledMapServiceLayer", "dojo/domReady!"],
function (Map, ArcGISTiledMapServiceLayer ) {
    map = new Map("map", {                
        center: [-76.756, 40.241],
        zoom: 8
    });            
    var customBasemap = new ArcGISTiledMapServiceLayer(
    "http://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer");
    map.addLayer(customBasemap);
});
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.