sql >> Base de Datos >  >> RDS >> Mysql

Radio/resultados más cercanos:API de Google Maps

Aquí la demostración de JSFiddle:

Supongo que esta es una forma de hacerlo. Puede usar el círculo de la API de Google Map V3 para crear los límites desde su punto central o ubicación actual. Puede especificar el radio del círculo en metros con setRadius(radius:number) . Con el círculo creado, puede recorrer sus marcadores y ver si están dentro del límite del círculo usando Objeto getBounds de Circle que es un LatLngBounds y verifique si el marcador está dentro del límite o no.

Seguí adelante y creé una pequeña demostración que tiene cinco puntos en un mapa, y cuando haces clic en el botón Crear círculo, hará que el primer marcador sea el punto central y dibuje un círculo con un radio de 5000 y filtre los marcadores que no están dentro del límite utilizando el método descrito anteriormente:

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