sql >> Databasteknik >  >> RDS >> Mysql

Radie/närmaste resultat - Google Maps API

Här är JSFiddle Demo:

Jag antar att detta är ett sätt att göra det. Du kan använda cirkeln för Google Map V3 API för att skapa gränserna från din mittpunkt eller nuvarande plats. Du kan ange cirkelns radie i meter med setRadius(radius:number) . Med den skapade cirkeln kan du gå igenom dina markörer och se om de är inom cirkelns gräns med Circles getBounds-objekt som är ett LatLngBounds och kontrollera om markören är inom gränsen eller inte.

Jag gick vidare och skapade en liten demo som har fem punkter på en karta, och när du klickar på knappen Skapa cirkel kommer den att göra den första markören till mittpunkten och ritar en cirkel med en radie på 5000 och filtrerar bort markörerna som är inte med i bunden med den metod som beskrivs ovan:

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


  1. Hur SQLite Max() fungerar

  2. Hur kan jag införa flera villkor i LIKE-operatorn?

  3. Ta bort inledande nollor från ett fält i en SQL-sats

  4. Använder LOAD DATA LOCAL INFILE i Java