Mysql
 sql >> Database >  >> RDS >> Mysql

Raggio/risultati più vicini - API di Google Maps

Qui la JSFiddle Demo:

Suppongo che questo sia un modo per farlo. Puoi utilizzare la cerchia dell'API di Google Map V3 per creare i limiti dal punto centrale o dalla posizione corrente. Puoi specificare il raggio del cerchio in metri con setRadius(radius:number) . Con il cerchio creato puoi scorrere i tuoi indicatori e vedere se sono all'interno del limite del cerchio utilizzando Oggetto getBounds di Circle che è un LatLngBounds e controlla se l'indicatore è entro il limite o meno.

Sono andato avanti e ho creato una piccola demo che ha cinque punti su una mappa, e quando fai clic sul pulsante Crea cerchio, il primo marcatore diventa il punto centrale e disegna un cerchio con un raggio di 5000 e filtra i marcatori che non sono vincolati utilizzando il metodo sopra descritto:

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