出発地と到着地のマーカを、予め2つ作っておいて、それを指かマウスで動かして、出発地と到着地の座標を得るJavaScript(の一部)

出発地と到着地のマーカを、予め2つ作っておいて、それを指かマウスで動かして、出発地と到着地の座標を得るJavaScript(の一部)

var map = L.map("map", {
            attributionControl: false,
            zoomControl: false
        }).setView(new L.LatLng(35.654543, 139.795534), 18);
        // }).setView(new L.LatLng(35.598563, 139.475528), 18); 広袴

        L.tileLayer('https://{s}.tile.osm.org/{z}/{x}/{y}.png', {
            detectRetina: true,
            maxNativeZoom: 18
        }).addTo(map);

        var leafletView = new PruneClusterForLeaflet(1,1);  // (120,20)がデフォルト


        // マーカーを2つ作ってみる
        // マーカーを1つめ()
        o_icon = L.icon({iconUrl:'http://kobore.net/soft/O_50.png',
        //iconSize: [36, 60], iconAnchor: [18, 60], popupAnchor:[0,-60]});
        iconSize: [36, 60], iconAnchor: [18, 60]});

        var o_marker = L.marker(
            [35.654543, 139.795534],
            { popup: 'Origin', draggable: true,  opacity:1.0, icon:o_icon}
        ).addTo(map);

        o_marker.on('dragstart', () => { // マーカーがドラッグしている最中
            o_marker.setOpacity(0.6); // 透明度0.6に
        });

        o_marker.bindPopup(`${o_marker.getLatLng().lat}, ${o_marker.getLatLng().lng}`)

        o_marker.on('dragend', () => { // マーカーが停止した時
            o_marker.setOpacity(1); // 透明度1.0へ
            o_marker.bindPopup(`${o_marker.getLatLng().lat}, ${o_marker.getLatLng().lng}`);
            console.log(o_marker);       
        });        

        d_icon = L.icon({iconUrl:'http://kobore.net/soft/D_50.png',
        //iconSize: [36, 60], iconAnchor: [18, 60], popupAnchor:[0,-60]});
        iconSize: [36, 60], iconAnchor: [18, 60]});

        var d_marker = L.marker(
            [35.654543, 139.797],
            { popup: 'Destination', draggable: true,  opacity:1.0, icon:d_icon}
        ).addTo(map);

        d_marker.bindPopup(`${d_marker.getLatLng().lat}, ${d_marker.getLatLng().lng}`)

        d_marker.on('dragstart', () => { // マーカーがドラッグしている最中
            d_marker.setOpacity(0.6); // 透明度0.6に
        });

        d_marker.on('dragend', () => { // マーカーが停止した時
            d_marker.setOpacity(1);  // 透明度1.0へ
            d_marker.bindPopup(`${d_marker.getLatLng().lat}, ${d_marker.getLatLng().lng}`);
            console.log(d_marker);       
        });

この手のコーディングのサンプル、本当に少ないです。

ちなみに、今更ながらなのですが、PrumeMobile の位置付けはこんな感じです。

 

2022/04,江端さんの技術メモ

Posted by ebata