開いた吹き出しの緯度経度を地図の中心点にする

実行結果

次の例では、ボタンを押した際に吹き出しを表示し、その緯度経度を地図の中心点にします。

ソースコードと解説

吹き出しを表示するには、ZDC.Popupクラスを利用します。
指定した緯度経度を地図の中心点にするには、ZDC.MapクラスのsetCenter(center)を利用します。

<!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.681406, lng = 139.767132;

  // 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.6764642, 139.7751838),
          {
            styleId: ZDC.MARKER_COLOR_ID_GRAY_S,
            contentStyleId: ZDC.MARKER_NUMBER_ID_1_S
          }
        );
        /* マーカーを追加 */
        map.addWidget(mrk_widget);

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

  /* ★吹き出しの表示 */
  var popup_wid;
  function openPopup() {
    /* 古い吹き出しの削除 */
    if(typeof popup_wid !== 'undefined') {
      map.removeWidget(popup_wid);
    }
    /* アイコンの位置取得 */
    var mrk_latlng = mrk_widget.getLatLng();
    /* 地図の中心に移動 */
    map.setCenter(mrk_latlng);
    /* 吹き出しの作成 */
    popup_wid = new ZDC.Popup(mrk_latlng, {htmlSource: 'Sample Popup', offset: new ZDC.Point(0, -18)});
    /* 吹き出しの表示 */
    map.addWidget(popup_wid);
  }
</script>
</head>

<body>
  <div id="ZMap" style="position: relative; max-width: calc(510px * 16 / 9); height:510px; border:1px solid #777777;"></div>
  <div class="mb-2" id="IBox">
    <input type="button" value="吹き出しを開く" onclick="openPopup();">
  </div>
</body>
</html>