16

マップで複数のマーカーを選択する必要があります。このようなもの: Google マップの Box/Rectangle Draw Selection ですが、Leaflet と OSM を使用します。

OSM マップで Shift キーを押しながらクリック アンド ドラッグしたときに表示されるズーム ボックスを変更することでできると思いますが、その方法がわかりません。

編集: L. Sannaが提案したように、_onMouseUp 関数を書き直して、次のような結果になりました。

_onMouseUp: function (e) {

    this._finish();

    var map = this._map,
    layerPoint = map.mouseEventToLayerPoint(e);

    if (this._startLayerPoint.equals(layerPoint)) { return; }

    var bounds = new L.LatLngBounds(
    map.layerPointToLatLng(this._startLayerPoint),
    map.layerPointToLatLng(layerPoint));

    var t=0;
    var selected = new Array();

    for (var i = 0; i < addressPoints.length; i++) {
        var a = addressPoints[i];
        pt = new L.LatLng(a[0], a[1]);

        if (bounds.contains(pt) == true) {
            selected[t] = a[2];
            t++;
        }
    }

    alert(selected.join('\n'))
},
4

4 に答える 4

8

OSM マップで Shift クリック アンド ドラッグしたときに表示されるズーム ボックスを簡単に変更できると思いますが、その方法がわかりません。

良いアイデア。ズーム ボックスは、実際にはリーフレットの機能です。

これがコードです。

必要に応じて _onMouseUp 関数を書き直すだけです。

于 2013-07-12T11:16:13.780 に答える
2

コメントするのに十分なポイントではありませんが、編集で投稿された OP のような _onMouseUp 関数をオーバーライドするために、リーフレット チュートリアルは適切な説明を提供します。さらに、この投稿は非常に役に立ち、すべてのステップを順を追って説明しています。

于 2019-01-10T19:07:43.930 に答える