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

Radius/nærmeste resultater - Google Maps API

Her er JSFiddle-demoen:

Jeg formoder, at dette er en måde at gøre det på. Du kan bruge cirklen for Google Map V3 API for at oprette grænserne fra dit midtpunkt eller nuværende placering. Du kan angive radius af cirklen i meter med setRadius(radius:number) . Med den oprettede cirkel kan du gå gennem dine markører og se, om de er inden for cirklens grænse ved hjælp af Cirkels getBounds-objekt, som er et LatLngBounds og kontroller, om markøren er inden for bunden eller ej.

Jeg gik videre og lavede en lille demo, der har fem punkter på et kort, og når du klikker på knappen Opret cirkel, gør den den første markør til midtpunktet og tegner en cirkel med en radius på 5000 og filtrerer de markører, der er ikke med i bundet ved hjælp af metoden beskrevet ovenfor:

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. SQL Rekursiv CTE:Finder objekter forbundet med egenskaber

  2. COALESCE-funktion i TSQL

  3. opdater kolonneværdier med kolonne i en anden tabel baseret på betingelse

  4. Oracle til PostgreSQL:START MED / FORBIND VED