ベースマップ

出典:Mapping APIs and location services - Basemaps

ベースマップとは?

ベースマップはベースマップ レイヤーとも呼ばれ、マップとシーンの全体的なビジュアルを提供するレイヤーです。ベースマップには通常は大陸、湖沼、行政境界、道路、都市、地名などの地理的な特徴やラベルが含まれます。ベースマップの最も一般的なデータ ソースは、ベースマップ スタイル サービスデータ サービス です。

ベースマップ レイヤーを使って以下のようなことができます。

  • マップとシーンの両方で、世界中の地理データを表示
  • ArcGIS streets、navigation、light gray canvas、OSM streets などのベースマップを表示
  • 自身で指定した色、字体、フォントを使用したベースマップを表示
  • 街路やナビゲーションのベクター タイル レイヤーを表示
  • 衛星画像や陰影起伏図用のマップ タイル レイヤーを表示
  • 独自のデータを独自の空間参照で表示

ベースマップの仕組み

ベースマップ レイヤーは、マッピング アプリケーションの視覚的な基礎を提供します。ベースマップ レイヤーは、一般的にグローバルなデータを含み、マップやシーンに追加される最初のレイヤーです。マップを表示する場合、ベースマップ レイヤーが最初に描画され、次にデータ レイヤー、グラフィックス レイヤーの順に描画されます。

ベストプラクティス

ほとんどの場合、アプリケーションはフィーチャの選択やポップアップの表示など、ベースマップ レイヤーとのやり取りを許可していません。ベースマップ レイヤーの上にあるデータレイヤーを使用してマップ内のフィーチャを表示して、フィーチャ内のデータにアクセスできます。

データ ソースの種類

ベースマップの一般的なデータ ソースは、ベースマップ スタイル サービスデータ サービスの 2 つです。

ベースマップ スタイル サービス

ベースマップ スタイル サービスは、世界中のベースマップ スタイルとデータを提供するロケーション サービスです。各ベースマップ スタイルには、地理的なフィーチャとラベルの視覚的なプロパティに固有のセットがあります。このサービスには ArcGIS と OSM の 2 つのデータ プロバイダが含まれます。データ プロバイダは、streets、navigation、light gray canvas、imagery などのデフォルトのベースマップ スタイルをサポートしています。各スタイルのデータは、ArcGIS でホストされているベクター タイル レイヤーとマップ タイル レイヤーを通じて提供され、Web メルカトル空間参照に格納されます。

ベストプラクティス

世界中のあらゆる場所の地理的特徴やラベルを表示するロケーション サービスを使用する場合や、独自のカスタム ベースマップ スタイルを作成する場合は、ベースマップ スタイル サービスを使用してください。このサービスでは、場所ローカル言語worldview を表示することもできます。

ベースマップ スタイル サービスを利用するための一般的な手順は以下の通りです。

  1. ベースマップ スタイル サービスで使用できるデフォルトのベースマップ スタイルを確認します。

  2. サービス、データ プロバイダ、スタイルを参照します

  3. ベースマップを表示します

ArcGIS Maps SDKs は、各スタイルにアクセスするための列挙型またはヘルパークラスを提供します。ただし、オープン ソース ライブラリを使用する場合は、ベースマップ スタイル サービスまたは基礎となるベクター タイル レイヤーまたはマップ タイル レイヤーを直接参照する必要があります。

例 : ArcGIS API for Python
from arcgis import GIS

gis = GIS(api_key="YOUR_API_KEY")
map = gis.map()
map.basemap = "streets-navigation-vector"
API リファリンスへ

ベースマップ スタイル サービスを使用する方法を学ぶにはベースマップ スタイルの表示ローカライズされた地名ラベルの表示worldview の表示を参照してください。地点の表示について学ぶ方法は Basemap places を参照してください。

REST API : さまざまなスタイルと機能の詳細についてはベースマップ スタイル サービス (v2) を参照してください。

データ サービス

フィーチャ サービス、ベクター タイル サービス、マップタイル サービスなどのデータ サービスは、ArcGIS Online または ArcGIS Enterprise でホストされているサービスで、お客様のデータを含んでいます。ほとんどの場合、クライアント API でサポートされているデータ サービスは、ベースマップのデータ ソースとして使用できます。データ サービスは、ArcGIS のホスト レイヤー (アイテム) でアクセスおよび管理できます。

ベストプラクティス

ArcGIS Online または ArcGIS Enterprise でホストされている既存のデータ サービスまたは独自のホスト型データ サービスを使用する場合は、データ サービスを使用します。また、Web メルカトル以外の空間参照を必要とする小規模な地域やエリアのデータを表示する場合にも使用します。

データ サービスを利用するための一般的な手順は以下の通りです。

  1. ホスト レイヤーおよびデータ サービスを検索または作成します。
  2. レイヤー アイテム ID またはサービス URL を取得します。例 :
  3. ベースマップを表示します。

ArcGIS Maps SDKs は、ホスト レイヤーのアイテム ID またはサービス URL を使用してデータ サービスにアクセスします。一方、オープンソース ライブラリは、サービス URL を使用してデータ サービスにアクセスします。

例 : ArcGIS Maps SDK for JavaScript
const featureLayer = new FeatureLayer({
    portalItem: {
      id: "4d9fb5c0a6344407aec56f47a11482b5" //  ArcGIS Online 上の State Geologic Map Compilation – Geology を参照
    }
  });
  const basemap = new Basemap({
    baseLayers: [featureLayer]
  });
チュートリアルへ

ベースマップ用のホスト レイヤーとデータ サービスを使用する方法については、ホスト レイヤー (データ サービス) の表示を参照してください。

ベースマップ用に独自のサービスを作成する方法については、Data services > Introduction を参照してください。

コード例

ベースマップ スタイルの表示

この例では、ベースマップのデータ ソースとしてベースマップ スタイル サービスを使用する方法を示します。そのためには、デフォルトのベースマップ スタイルの 1 つを使用します。表示可能なベースマップについては、ベースマップ スタイル (v2) を参照してください。

ステップ

  1. マップを作成します。
  2. ベースマップ スタイル サービスからスタイルを参照します。
  3. ベースマップをマップに追加します。
例 : ArcGIS API for Python
from arcgis.gis import GIS

gis = GIS(api_key="YOUR_API_KEY")
map = gis.map()
map.basemap = "streets-vector"
# map.basemap = "streets-navigation-vector"
# map.basemap = "topo-vector"
# map.basemap = "gray-vector"
# map.basemap = "satellite"

map.center = [35.25615700207951, 139.15502776889684]
map.zoom = 13
map

APIリファリンスヘ

ArcGIS/Streets

ArcGIS/Navigation

ArcGIS/Topographic

ArcGIS/Outdoor

ArcGIS/Light gray canvas

ArcGIS/Imagery

OSM/Standard

OSM/Navigation

OSM/Blueprint

ローカライズされた地名ラベルの表示

ベースマップ スタイル サービスはデフォルトで英語のラベルを表示します。以下の例では、ローカライズされた言語ベースの地名ラベルで OSM スタイルを表示する方法を示します。

ステップ

  1. マップまたはシーンを作成します。
  2. ベースマップ スタイル サービス (v2) からスタイルを参照します。
  3. スタイルの URL で、language パラメーターに言語コードを設定します。
  4. ベースマップをマップに追加します。

ローカライズされた地名ラベル (ローカル)

この例では、arcgis/light-gray のマップ スタイルを使用します。デフォルトでは地名ラベルはグローバルな地名を表示します。ローカライズされた地名ラベルをレンダリングするには、language パラメーターを local に設定します。ローカライズされたラベルはズームレベル 10 以降でレンダリングされます。

例 : Esri Leaflet
const apiKey = "YOUR_API_KEY";
const map = L.map("map").setView([35.67255187657312, 139.76323442958844], 14);
L.esri.Vector.vectorBasemapLayer("arcgis/light-gray", {
  apikey: apiKey,
  language: 'local',
  version: 2
  }).addTo(map);
チュートリアルへ

言語ベースの地名ラベル (グローバル)

この例では、arcgis/dark-gray マップ スタイルを使用しています。language パラメーターに言語コード (ここでは ja) を設定し、全てのズームレベルで地名ラベルがすべて日本語で表示されるようにしています。

例 : Esri Leaflet
const apiKey = "YOUR_API_KEY";
const map = L.map("map").setView([2.35, 48.856], 6);
L.esri.Vector.vectorBasemapLayer("arcgis/dark-gray", {
  apikey: apiKey,
  language: 'ja',
  version: 2
}).addTo(map); 
チュートリアルへ

worldview の表示

ベースマップ スタイル サービスは、デフォルトのグローバルな worldview を使用して、国の境界線とラベルを表示します。この例では、ある国の特定のビューに基づいてベースマップの境界線とラベルを表示する方法を示します。 worldview は、navigationstreetscommunity など一部の ArcGIS ベースマップ スタイルでのみ使用できます。OSM スタイルはサポートされていません。

特定の worlview を選択した場合、その国以外の国際的な方針ではないことに注意してください。

ステップ

  1. マップまたはシーンを作成します。
  2. ベースマップ スタイル サービス (v2) からベースマップ レイヤーを参照します。
  3. スタイルの URL で、サポートされている worldview 名を worldview パラメーターに設定します。
  4. ベースマップをマップに追加します。

この例では、 arcgis/light-gray のマップ スタイルを使用し、境界線とラベルの worldviewmorocco に設定しています。すべての worldview オプションを見るには、ベースマップ スタイル サービス (v2) をご覧ください。

例 : MapLible GL JS
const worldView = "morocco" // モロッコの worldview を指定
      const map = new maplibregl.Map({
        container: "map", // div 要素の ID
        style: `https://basemapstyles-api.arcgis.com/arcgis/rest/services/styles/v2/styles/arcgis/light-gray?token=${apiKey}&worldview=${worldView}`,
        zoom: 3,
        center: [-7.09, 31], // 初期位置 [経度, 緯度]
      }) 

ホスト レイヤー (データ サービス) の表示

この例では、ベースマップのデータ ソースとして ArcGIS のデータ サービスを使用する方法を示します。データはアメリカ全土の地質を示すホスト フィーチャ レイヤーです。データ サービスを利用するためには、ホスト レイヤーのアイテム ID を参照する必要があります。

ステップ

  1. ホスト レイヤーのアイテム ID を見つけます。
  2. ベースマップを作成し、そのレイヤーをベースレイヤーとして追加します。
  3. マップを作成し、ベースマップを使用します。
例 : ArcGIS Maps SDK for JavaScript
const featureLayer = new FeatureLayer({
    portalItem: {
      id: "4d9fb5c0a6344407aec56f47a11482b5" //  ArcGIS Online 上の State Geologic Map Compilation – Geology を参照
    }
  });
  const basemap = new Basemap({
    baseLayers: [featureLayer]
  }); 
チュートリアルへ