Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Radius/nächste Ergebnisse – Google Maps API

Hier die JSFiddle-Demo:

Ich nehme an, dies ist eine Möglichkeit, dies zu tun. Sie können den Kreis der Google Map V3 API verwenden um die Grenzen von Ihrem Mittelpunkt oder aktuellen Standort aus zu erstellen. Mit setRadius(radius:number) können Sie den Radius des Kreises in Metern angeben . Mit dem erstellten Kreis können Sie Ihre Markierungen durchlaufen und mit Das getBounds-Objekt von Circle, das ein LatLngBounds ist und prüfen Sie, ob die Markierung innerhalb der Grenze liegt oder nicht.

Ich habe eine kleine Demo erstellt, die fünf Punkte auf einer Karte hat, und wenn Sie auf die Schaltfläche Kreis erstellen klicken, wird die erste Markierung zum Mittelpunkt und ein Kreis mit einem Radius von 5000 gezeichnet und die Markierungen herausgefiltert nicht mit der oben beschriebenen Methode gebunden sind:

function createRadius(dist) {
    var myCircle = new google.maps.Circle({
        center: markerArray[markerArray.length - 1].getPosition(),
        map: map,
        radius: dist,
        strokeColor: "#FF0000",
        strokeOpacity: 0.8,
        strokeWeight: 2,
        fillColor: "#FF0000",
        fillOpacity: 0.35
    });
    var myBounds = myCircle.getBounds();

    //filters markers
    for(var i=markerArray.length;i--;){
         if(!myBounds.contains(markerArray[i].getPosition()))
             markerArray[i].setMap(null);
    }
    map.setCenter(markerArray[markerArray.length - 1].getPosition());
    map.setZoom(map.getZoom()+1);
}