sql >> Databasteknik >  >> NoSQL >> MongoDB

Det går inte att visa endast punkterna inom ett specifikt område (cirkel) med funktionen .getBounds() (broschyr)

Du kan skapa din egen contains metod och lägg till den i L.Circle klass eftersom den inte har en som standard. Du kan använda verktygsmetoden distanceTo av L.LatLng objekt för att beräkna avståndet mellan din markör och cirkelns centrum och jämföra det med cirkelns radie:

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

Nu när du har en cirkel och en markör eller latlng-objekt kan du göra detta:

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);

Arbetsexempel på Plunker:http://plnkr.co/edit/OPF7DM?p=preview

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

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

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



  1. BasicBSONList kan bara fungera med numeriska nycklar, inte:[_id]

  2. Effektiv sortering av resultaten av en mongodb geospatial fråga

  3. Hantering av övergående nätverksfel med StackExchange.Redis

  4. Hur använder man en variabel som ett fältnamn i mongodb-native findOne()?