DOM版マーカーのイベント設定

このページでは以下の方法について説明しています。

  • DOM版マーカーにイベントを設定する方法
  • DOM版マーカーに設定されたイベントを削除する方法

対象クラス

対象関数

実装サンプル

こちらをご覧ください。

実装方法

DOM版マーカーにイベントを設定する

  1. 地図を初期化します
  2. イベントを設定する mapscript.object.Marker オブジェクトを生成します
  3. イベントが起きた際に発火する関数を用意します
  4. addEventListener()( Marker クラス )を用いてオブジェクトにイベントを設定します
    第一引数にはイベント名、第二引数には発火させる関数(今回は(2)で作成した関数)を指定します
    ※イベントを削除する場合は removeEventListener()( Marker クラス )ををご利用ください
サンプルコード
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>DOM版マーカーのイベント設定</title>
        <script src="https://{HOST}/{CID}/v2/map_script?host={example.com}&signature={XXXXXXXXX}&request_code={YYYYYYYYY}"></script>
        <script>
            function initMap(){
                const center = new mapscript.value.LatLng(35.68081, 139.76779);
                // (1) 地図を初期化
                const map = new mapscript.Map('{CID}', {
                    target: '#map', 
                    center: center, 
                    zoomLevel: 15 
                });

                // (2)オブジェクトを生成
                const marker = new mapscript.object.Marker({
                    icon: '/path/to/icon/image',        
                    position: center,   

                });                
                // (3)関数を用意
                const clickFunc = () => alert('click!');
                // (4)リスナー関数を設定
                marker.addEventListener('click', clickFunc);

                // マーカーを地図に追加
                map.addMarker(marker);

                // リスナー関数を削除
                // こちらのコードで動作を確認する場合は以下の1行をコメントアウトの上ご利用ください
                marker.removeEventListener('click', clickFunc);

            }
        </script>
    </head>

    <body onload="initMap()">
        <div id="map" style="height: 500px; width: 500px;"></div>
    </body>
</html>

設定できるイベントについて

mapscript.object.Marker オブジェクトに設定できるイベントは以下の通りです。
● click : マーカーがクリックされたとき
● position_changed : マーカーの緯度経度が変わった(ドラッグ後など)とき
● appear : マーカーが非表示 → 表示に変わったとき
● disappear : マーカーが表示 → 非表示に変わったとき
詳しくはこちらをご覧ください。

関連ページ