MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Es ist nicht möglich, nur die Punkte innerhalb eines bestimmten Bereichs (Kreises) mit der Funktion .getBounds() anzuzeigen (Merkblatt)

Sie können Ihre eigenen contains erstellen -Methode und fügen Sie sie dem L.Circle hinzu Klasse, weil sie standardmäßig keine hat. Sie können die Utility-Methode distanceTo verwenden des L.LatLng Objekte, um den Abstand zwischen Ihrer Markierung und dem Mittelpunkt des Kreises zu berechnen und diesen mit dem Radius des Kreises zu vergleichen:

L.Circle.include({
    contains: function (latLng) {
        return this.getLatLng().distanceTo(latLng) < this.getRadius();
    }
});

Wenn Sie jetzt einen Kreis und eine Markierung oder ein Latlng-Objekt haben, können Sie Folgendes tun:

var map = L.map(...);

var circle = L.circle(...).addTo(map),
    marker = L.marker(...).addTo(map);
    latLng = L.latLng(...);

// Returns true when in the circle and false when outside
circle.contains(marker.getLatLng());
circle.contains(latLng);

Arbeitsbeispiel für Plunker:http://plnkr.co/edit/OPF7DM?p=preview

L.Circle-Referenz:http://leafletjs.com/reference.html#circle

L.Marker-Referenz:http://leafletjs.com/reference.html#marker

L.LatLng-Referenz:http://leafletjs.com/reference.html#latlng