ArcGIS API for Javascript와 함께 자체베이스 맵을 사용하십니까?


12

Javascript API를 사용하여 맵을 만들려고합니다.

내베이스 맵을 사용하고 싶지만 가장 간단한 코드를 찾을 수 없습니다.

나는 항상 다음과 같은 것을 본다 :

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

그러나 ArcGIS 온라인베이스 맵을 사용하고 싶지 않습니다.

베이스 맵을 호스팅하는 맵 서비스를 만드는 코드는 무엇입니까?


1
자신의베이스 맵에서 타일을 만들었습니까?
Mapperz

답변:


12

API 참조 맵 클래스는 다음을 말한다 :

유효한 옵션은 "streets", "satellite", "hybrid", "topo", "gray", "oceans", "national-geographic", "osm"입니다. 버전 3.3 기준

대신 새로운 ArcGIS Tiled Map Service Layer를 정의하고 다음과 같이 사용해야합니다.

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

1
@StephenLead setBasemap은 문자열 매개 변수 만 허용하므로 작동하지 않습니다!
digz6666

2
@ digz6666 죄송합니다, 당신이 옳다고 생각합니다. 댓글을 삭제하겠습니다
Stephen Lead

2
@StephenLead 방법을 찾았습니다. 답변으로 게시하겠습니다. 아차는이 답변을 10 담당자 포인트를 요구한다, 젠장 :)
digz6666

@ 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);
});
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.