Mysql
 sql >> Base de données >  >> RDS >> Mysql

Rayon/résultats les plus proches - API Google Maps

Voici la Démo JSFiddle :

Je suppose que c'est une façon de le faire. Vous pouvez utiliser cercle de l'API Google Map V3 pour créer les limites à partir de votre point central ou de votre emplacement actuel. Vous pouvez spécifier le rayon du cercle en mètres avec setRadius(radius:number) . Avec le cercle créé, vous pouvez parcourir vos marqueurs et voir s'ils sont dans les limites du cercle en utilisant L'objet getBounds de Circle qui est un LatLngBounds et vérifiez si le marqueur est dans les limites ou non.

Je suis allé de l'avant et j'ai créé une petite démo qui a cinq points sur une carte, et lorsque vous cliquez sur le bouton Créer un cercle, le premier marqueur devient le point central et dessine un cercle avec un rayon de 5000 et filtre les marqueurs qui ne sont pas liés en utilisant la méthode décrite ci-dessus :

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