sql >> Databáze >  >> NoSQL >> MongoDB

Nelze zobrazit pouze body v určitém rozsahu (kruhu) pomocí funkce .getBounds() (leták)

Můžete si vytvořit vlastní contains a přidejte jej do L.Circle třídu, protože ve výchozím nastavení žádnou nemá. Můžete použít obslužnou metodu distanceTo z L.LatLng objektů, abyste vypočítali vzdálenost mezi vaší značkou a středem kruhu a porovnali ji s poloměrem kruhu:

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

Nyní, když máte kruh a značku nebo objekt šířky, můžete udělat toto:

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

Pracovní příklad na Plunkeru:http://plnkr.co/edit/OPF7DM?p=preview

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

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

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



  1. Jak odkazovat na vložený dokument v Mongoidu?

  2. Jak provést správné testování databáze (TDD) na Rails 3 pomocí MongoDB a Mongoid

  3. mongoose dotaz stejné pole s různými hodnotami

  4. Jak provést souhrnný mongo-query pomocí json v řetězci?