4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZENRIN Maps APIで表示させたマーカーに吹き出しをつけてみる

Last updated at Posted at 2025-08-22

はじめに🐖

【ZENRIN Maps API】ではマップ上に マーカー(ピン) を設置・表示させることが可能です📍
下記はイメージです👇🏻
スクリーンショット 2025-07-31 131729.png

今回は設置したマーカーを押した際に、場所の詳細が記載されている 吹き出し(ポップアップ) を表示させる方法をご紹介します💬

この記事でできること

・ZENRIN Maps APIを使って地図を描画
・地図上にマーカー、吹き出しを表示
・マーカーと吹き出しのカスタム

ZENRIN Maps APIとは🧐

【ZENRIN Maps API】はゼンリンの地図データを、API形式でご利用いただけるサービスです。
主な特徴としては下記があります。
過去から現在までの地図情報 を表示できる
ZID と呼ばれる独自のIDにより建物の変化情報を時系列で把握できる

他にもさまざまな機能がありますので、公式サイトもご参照ください。

地図表示を行うために💻

【ZENRIN Maps API】のご利用には申し込みが必要です。以下のQiita記事が参考になりますので、ご確認ください。
【ZENRIN Maps API】の利用申し込み

※2か月間は無料で【ZENRIN Maps API】が利用できます。

公式リファレンス📚

地図描画
吹き出しの表示方法

地図、マーカー、吹き出しを表示させるコード🗺️

以下は、地図を表示し、マーカーを設置し、クリック時に吹き出しを表示する基本的なHTMLコードです👇🏻

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- ローダーのURLをscriptでロードする -->
<script src="https://{DOMAIN}/zma_loader.js?key=[APIキー]&auth=[認証方式]"></script>
<script type="text/javascript">
  // オブジェクト
  var map, mrk_widget;

  // 中心点の緯度経度
  const lat = 35.642955, lng = 139.742387;

  // ZMALoader
  ZMALoader.setOnLoad(function (mapOptions, error) {
    if (error) {
      console.error(error)
      return
    }

    // マップオプションをデフォルト値から変更する
    mapOptions.center = new ZDC.LatLng(lat, lng); // 中心点の緯度経度を設定

    // 地図を生成
    map = new ZDC.Map(
      document.getElementById('ZMap'),
      mapOptions,
      function() {
        // Success callback
        // コントロールを追加する
        // 左上 拡大縮小ボタン
        map.addControl(new ZDC.ZoomButton('top-left'));
        // 右上 コンパス
        map.addControl(new ZDC.Compass('top-right'));
        // 左下 スケールバー
        map.addControl(new ZDC.ScaleBar('bottom-left'));

        /* マーカーを作成 */
        mrk_widget = new ZDC.Marker(
          new ZDC.LatLng(35.642955, 139.742387),//マーカーを置く場所
          {
            styleId: ZDC.MARKER_COLOR_ID_GRAY_S,
            contentStyleId: ZDC.MARKER_NUMBER_ID_1_S
          }
        );
        /* ★マーカーをクリック時のイベント登録 */
        mrk_widget.addEventListener('click', function() {
          openPopup(mrk_widget.getLatLng()); // マーカーの表示位置を取得して渡す
        });
        /* マーカーを追加 */
        map.addWidget(mrk_widget);

      },
      function() {
        // Failure callback
      }
    );
  });

  /* ★吹き出しの表示 */
  function openPopup(latlng) {
    map.addWidget(
      new ZDC.Popup(
        latlng,
        {
          htmlSource: 'ゼンリンデータコム',
          offset: new ZDC.Point(0, -18)
        }
      )
    );
  }
</script>
</head>

<body>
  <div id="ZMap" style="position: relative; max-width: calc(510px * 16 / 9); height:510px; border:1px solid #777777;"></div>
</body>
</html>

吹き出しを実際に表示させてみる💬

上記コードで、ゼンリンデータコムの本社がある東京都港区にマーカーを設置した例です📍

このように、簡単にマーカーの設置と吹き出しの表示が可能です。
スクリーンショット 2025-07-31 162110.png

マーカーと吹き出しをカスタマイズしてみる⚒️

①styleIdを変更してマーカーの色を変更する(赤に変更)📍

        mrk_widget = new ZDC.Marker(
          new ZDC.LatLng(lat, lng),//マーカーを置く場所
          {
            styleId: ZDC.MARKER_COLOR_ID_RED_S,
            contentStyleId: ZDC.MARKER_NUMBER_ID_1_S
          }
        );

変更後のイメージです!

スクリーンショット 2025-07-31 162244.png

②吹き出し内にリンクを入れる🔗

htmlSourceにaタグを記述することで、吹き出し内に文字リンクを挿入できます。

  function openPopup(latlng) {
    map.addWidget(
      new ZDC.Popup(
        latlng,
        {
          htmlSource: 'ゼンリンデータコム<br><a href="https://www.zenrin-datacom.net/" target="_blank">ゼンリンデータコム公式サイトへ</a>',
          offset: new ZDC.Point(0, -18)
        }
      )
    );
  }

リンクが追加された吹き出しのイメージです!

スクリーンショット 2025-07-31 162402.png

おわりに

このように、【ZENRIN Maps API】を使用すると、マーカーの設置や吹き出しのカスタマイズを簡単に行うことができます🌟

次回は、複数のマーカーを設置する方法 について解説する予定です。
閲覧ありがとうございました🙇🏻‍♂️

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?