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
独自のベースマップからタイルを作成しましたか?
マッパーズ

回答:


12

マップクラスのAPIリファレンスには次のように記載されています。

有効なオプションは次のとおりです。「streets」、「satellite」、「hybrid」、「topo」、「gray」、「oceans」、「national-geographic」、「osm」。バージョン3.3以降

代わりに、新しいArcGIS Tiled Map Serviceレイヤーを定義して、次のように使用する必要があります。

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

1
@StephenLead setBasemapは文字列パラメーターのみを受け入れるため、機能しません!
digz6666

2
@ digz6666おっと、あなたは正しいと思う。私はそのコメントを削除します
スティーブン鉛

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.