Esri Leaflet

出典:Esri Leaflet and ArcGIS - Tutorials - Display a map

マップを表示する

このチュートリアルでは、Esri Leaflet と ベースマップ レイヤー サービス を使用して、マップを表示する方法を紹介します。

マップには、ベースマップ レイヤー サービスのベクター タイル ベースマップ レイヤーを使用しています。ベクター タイル ベースマップ レイヤーには、レイヤーをレンダリングするためのスタイル、レイヤー、フォントグリフ(Font Glyphs)、およびアイコンが含まれています。

このチュートリアルでは、arcgis/topographic ベースマップ スタイルを使用して、富士山周辺の地図を表示します。

このアプリケーションはベースマップ タイルの使用モデルを利用します。

マッピングと位置情報サービスのガイド: ベースマップのスタイルについて詳しくは、マップ (2D)をご覧ください。

前提条件

このチュートリアルを実施するには、以下が必要です。

  • API キーにアクセスするための ArcGIS Online アカウントもしくは ArcGIS 開発者アカウント

ステップ

新しい Pen の作成

CodePen にアクセスして、マッピング アプリケーション用の新しい Pen を作成します。

新しいアプリの作成

HTML ページを定義して、Web ブラウザの幅と高さにあわせたマップを作成します。

CodePen > HTML で、HTML と CSS を追加して、map という id 属性を持つ div 要素のあるページを作成します。

<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
  <title>Esri Leaflet Tutorials: Display a map</title>
 
  <style>
    body { margin:0; padding:0; }
    #map {
        position: absolute;
        top:0;
        bottom:0;
        right:0;
        left:0;
        font-family: Arial, Helvetica, sans-serif;
        font-size: 14px;
        color: #323232;
      }
  </style>

</head>

<body>
  <div id="map"></div>
</body>
</html>

認証を設定する

このチュートリアルで使用される位置情報サービスにアクセスするには、適切な権限を持つアクセス トークンが必要です。

  1. API キーの取得のチュートリアルを参照し、以下の権限を持つ API キーを作成してください。
    • 権限
      • Location services > Basemaps

開発者認証情報を設定する

前の手順で作成したアクセス トークンをアプリケーションで使用します。

HTML の <body> 内に <script> 要素を追加し、アクセス トークンを格納するための accessToken 変数を作成します。 YOUR_ACCESS_TOKEN を、取得してきた API キーをアクセス トークンとして設定してください。

<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
  <title>Esri Leaflet Tutorials: Display a map</title>

  <style>
    body { margin:0; padding:0; }
    #map {
        position: absolute;
        top:0;
        bottom:0;
        right:0;
        left:0;
        font-family: Arial, Helvetica, sans-serif;
        font-size: 14px;
        color: #323232;
      }
  </style>

</head>

<body>
  <div id="map"></div>
  
  <!--script のタグを追加-->
  <script>
    // API キーの追加 
    const accessToken = "YOUR_ACCESS_TOKEN";

  </script>

</body>

</html>

スクリプト参照を追加する

ベクター ベースマップ レイヤーにアクセスするには、Leaflet ライブラリに加え、esri-leaflet および esri-leaflet-vector プラグインを参照します。

<html>

  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
    <title>Esri Leaflet Tutorials: Display a map</title>

    <!-- Leaflet の jsライブラリ と css ファイルの参照を追加-->
    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" crossorigin="" />
    <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" crossorigin=""></script>

    <!-- Esri Leaflet の js ライブラリ と ベクタータイル対応の js ライブラリへの参照を追加-->
    <script src="https://unpkg.com/esri-leaflet@3.0.19/dist/esri-leaflet.js"></script>
    <script src="https://unpkg.com/esri-leaflet-vector@4.3.2/dist/esri-leaflet-vector.js"></script>
  
    <style>
      body { margin:0; padding:0; }
      #map {
          position: absolute;
          top:0;
          bottom:0;
          right:0;
          left:0;
          font-family: Arial, Helvetica, sans-serif;
          font-size: 14px;
          color: #323232;
        }
    </style>

  </head>

  <body>
    <div id="map"></div>
  <!--script のタグを追加-->
    <script>
    // API キーの追加 
      const accessToken = "YOUR_ACCESS_TOKEN";

    </script>
  </body>
</html>

マップの作成

指定したベースマップを使用して、div 要素に map を追加します。 ベースマップ スタイルの一覧を確認するには、ベースマップ スタイル サービスの概要を参照してください。

L.map クラスを使って地図を作成します。 setView メソッドで中心点を富士山周辺にし、ズーム レベルを 12 にセットします。
L.esri.Vector.vectorBasemapLayer クラスをインスタンス化し、basemapEnumaccessToken を設定してから、レイヤーを map に追加します。

<html>

  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
    <title>Esri Leaflet Tutorials: Display a map</title>

    <!-- Leaflet の js ライブラリ と css ファイルの参照を追加-->
    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" crossorigin="" />
    <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" crossorigin=""></script>

    <!-- Esri Leaflet の js ライブラリ と ベクタータイル対応の js ライブラリへの参照を追加-->
    <script src="https://unpkg.com/esri-leaflet@3.0.19/dist/esri-leaflet.js"></script>
    <script src="https://unpkg.com/esri-leaflet-vector@4.3.2/dist/esri-leaflet-vector.js"></script>

    <style>
      body { margin:0; padding:0; }
      #map {
          position: absolute;
          top:0;
          bottom:0;
          right:0;
          left:0;
          font-family: Arial, Helvetica, sans-serif;
          font-size: 14px;
          color: #323232;
        }
    </style>

  </head>

  <body>
    <div id="map"></div>
    
    <!--script のタグを追加-->
      <script>
      // API キーの追加 
      const accessToken = "YOUR_ACCESS_TOKEN";
      const basemapEnum = "arcgis/topographic";

      const map = L.map('map', {
        minZoom: 2
      }).setView([35.362752, 138.729858], 12);

      L.esri.Vector.vectorBasemapLayer(basemapEnum, {
        token: accessToken,
        language: "ja"
      }).addTo(map);

    </script>

  </body>

</html>

アプリを実行する

CodePen で、コードを実行してマップを表示します。マップには、富士山を中心とした地形ベースマップ レイヤーが表示されます。

次のチュートリアル

以下のチュートリアルで追加の位置情報サービスの使用方法を学びましょう(英語ページ)。