sql >> Databáze >  >> RDS >> Mysql

Poloměr/nejbližší výsledky – Google Maps API

Zde je Ukázka JSFiddle:

Předpokládám, že toto je jeden způsob, jak to udělat. Můžete použít kruh Google Map V3 API pro vytvoření hranic od vašeho středového bodu nebo aktuální polohy. Poloměr kruhu v metrech můžete určit pomocí setRadius(radius:number) . S vytvořeným kruhem můžete procházet značkami a zjistit, zda jsou v rámci kruhu pomocí Objekt getBounds Circle, který je LatLngBounds a zkontrolujte, zda je značka uvnitř hranice nebo ne.

Pokračoval jsem a vytvořil malou ukázku, která má na mapě pět bodů, a když kliknete na tlačítko vytvořit kruh, udělá z první značky středový bod a nakreslí kruh o poloměru 5000 a odfiltruje značky, které nejsou s vázané pomocí výše popsané metody:

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. Nepřetržité streamování náhodného zvuku z databáze

  2. Jak objednávat podle názvu měsíce v PostgreSQL nebo Oracle

  3. Tabulka chyb Mysql 1050 již existuje, i když ve skutečnosti neexistuje

  4. Vypočítejte časový rozdíl mezi dvěma řadami