Javascript için ArcGIS API ile kendi temel haritayı mı kullanıyorsunuz?


12

Javascript API kullanarak bir harita yapmaya çalışıyorum.

Kendi temel haritanı kullanmak istiyorum, ancak bunu yapmak için en basit kodu bulamıyorum.

Her zaman böyle bir şey görüyorum:

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

Ancak ArcGIS çevrimiçi temel haritalarını kullanmak istemiyorum.

Temel haritamı barındıran bir harita hizmeti yapmak için kod nedir?


1
kendi temel haritanızdan fayans yarattınız mı?
Mapperz

Yanıtlar:


12

API Referansı Harita Sınıfı aşağıdaki diyor:

Geçerli seçenekler şunlardır: "sokaklar", "uydu", "karma", "topo", "gri", "okyanuslar", "ulusal-coğrafi", "osm". Sürüm 3.3'ten itibaren

Bunun yerine, yeni bir ArcGIS Döşemeli Harita Servis Katmanı tanımlamalı ve aşağıdaki gibi kullanmalısınız:

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

1
@StephenLead setBasemap yalnızca string parametresini kabul eder, bu yüzden çalışmaz!
digz6666

2
@ digz6666 Hata! Sanırım haklısın. Bu yorumu sileceğim
Stephen Lead

2
@StephenLead Bir yol buldum. Yanıt olarak göndereceğim. Hata! Bunu cevaplamak için 10 tekrar puanı gerekiyor lanet olsun :)
digz6666

@ digz6666: Yanıt oluşturmak için 10 Temsilciye ihtiyacınız yok. Bkz. Gis.stackexchange.com/help/privileges
Devdatta Tengshe

5

Arcgis javascript SDK sürüm 3.x için, özel temel haritaları bildirmek ve kaydetmek ve haritanızla kullanmak için esri / basemaps sınıfını kullanabilirsiniz: https://developers.arcgis.com/javascript/3/jsapi/esri.basemaps-amd.html

Özel temel harita bildirin ve kaydedin:

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" }
  ]
};

Harita yapıcısında özel temel harita kullan:

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

Veya özel harita haritanızı mevcut haritaya uygulayabilirsiniz:

map.setBasemap("mybasemap");

Tam kod örneği: https://codepen.io/digz6666/pen/wPwPbW

Arcgis javascript SDK sürüm 4.x için esri / Basemap kullanabilirsiniz.

Temel harita katmanını ve temel haritayı bildirin:

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'
});

Mevcut harita nesnesine temel harita uygulayın:

map.basemap = myBasemap;

2

Yerleşik bir temel harita belirtmeniz gerekmez. Özel taban haritanızı böyle bir katman olarak ekleyin.

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);
});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.