0

Googleマップで作成された新しいアイテムをクリックするpanTo()と、指定されlatlngた. addListenerがコールバック関数にパラメーターを送信できないかどうかはわかりません。

function createLinkToMarker(title, latlng, container) {
    var a = L.DomUtil.create('a', 'link-marker', container);
        a.href='#',
        a.innerHTML = title;

    function pan() {//??? why I passing argument(latlng) for each new A element?
        console.log(arguments);
        map.panTo(latlng);
    }
    L.DomEvent
        .addListener(a, 'click', L.DomEvent.stopPropagation)
        .addListener(a, 'click', L.DomEvent.preventDefault)
        .addListener(a, 'click', pan);
    return a;
}
4

1 に答える 1

2

おそらく、latlng 値を DOM 要素に追加し、リスナーで取得する必要があります。HTML5 を使用している場合、接頭辞 "data" を付けて項目を保存できるため、要素に緯度を "data-lat" として、経度を "data-lon" として保存できます。つまり、次のようになります。

a.setAttribute( "data-lat", latlng.lat );
a.setAttribute( "data-lon", latlng.lng );

次に、リスナーで:

var lat = this.getAttribute( "data-lat" );
var lon = this.getAttribute( "data-lon" );
map.panTo( new L.LatLng( lat, lon ) );

お役に立てれば!

于 2012-08-14T02:52:46.990 に答える