0

cloudmade と leaflet プラグインを使用してマップを作成しました。マーカーを設定しました。私の目的は、場所の 3 つのリンクを持つ独自のコントロール パネルを作成することです。リンク (例: London) をクリックすると、保存されているロンドンの緯度経度にパンし、他の 2 つについても同様です。私が持っているコードはマップをロードしますが、コンテナが消え、コンソールに次のエラーメッセージが表示されます: "Mycontrol.appendhild(link);- Mycontrol is not defined. This still does not work when it is defined.

1) 私はこれで正しいルートにいますか? 2)例やチュートリアルでこれを機能させるための助けは素晴らしいでしょう

ありがとう。

ここにコードのスニペットがあります

[コード]

[Cloudmade API Key and URL]

[Leaflet ICON Properties]
[Leaflet MARKERS]

[Leaflet toggle styles]

//CONTROL

var MyControl = L.Control.extend({
    options: {
        position: 'topright'
    },

    onAdd: function (map, position) {
        // create the control container
        var container = L.DomUtil.create('div', 'my-custom-control');

        // ... initialize other DOM elements, add listeners, etc.
        function createMapLink(location, zoom, name) {
            var link = document.createElement('a');
            link.href = '';
            link.innerHTML = "Go to " + name;
            link.onclick = function() {
                map.setCenter(location, zoom);
                return false;
            }
            Mycontrol.appendChild(link);
        }

        createMapLink(new L.LatLng(lat,lon), 11, 'Location1');
        createMapLink(new L.LatLng(lat,lon), 11, 'Location2');
        createMapLink(new L.LatLng(lat,lon), 11, 'Location3');

        return container;
    }
});

map.addControl(new MyControl());


L.control.layers(baseMaps, overlayMaps, MyControl).addTo(map);

[/コード]

4

1 に答える 1

0

Control クラスを拡張しようとしていますが、結果を var に代入しています。新しいクラスは var ではなく関数なので、先頭の var キーワードを削除します。

リーフレットズームコントロールのソースを見て、その方法の例を見てください。

于 2013-01-13T21:18:34.413 に答える