Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Raio/resultados mais próximos - API do Google Maps


Aqui a JSFiddle Demo:

Suponho que esta seja uma maneira de fazê-lo. Você pode usar o círculo da API do Google Map V3 para criar os limites do seu ponto central ou localização atual. Você pode especificar o raio do círculo em metros com setRadius(radius:number) . Com o círculo criado, você pode percorrer seus marcadores e ver se eles estão dentro do limite do círculo usando O objeto getBounds do Circle que é um LatLngBounds e verifique se o marcador está dentro do limite ou não.

Eu fui em frente e criei uma pequena demonstração que tem cinco pontos em um mapa, e quando você clica no botão criar círculo, ele faz o primeiro marcador o ponto central e desenha um círculo com um raio de 5000 e filtra os marcadores que não estão vinculados usando o método descrito acima:
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);
}