Analisi e testCRM e piattaforme datiStrumenti di marketing

Calcola o interroga la distanza del cerchio massimo tra i punti di latitudine e longitudine utilizzando la formula Haversine (esempi PHP, JavaScript, Java, Python, MySQL, MSSQL)

Questo mese ho programmato un bel po' PHP e MySQL rispetto a GIS. Curiosando in rete, in realtà ho avuto difficoltà a trovare alcuni dei Calcoli geografici per trovare la distanza tra due posizioni, quindi ho voluto condividerle qui.

Mappa di volo in Europa con grande distanza del cerchio

Il modo più semplice per calcolare una distanza tra due punti è utilizzare la formula pitagorica per calcolare l'ipotenusa di un triangolo (A² + B² = C²). Questo è noto come Distanza euclidea.

Questo è un inizio interessante ma non si applica alla geografia poiché la distanza tra le linee di latitudine e longitudine non è uguale. Man mano che ti avvicini all'equatore, le linee di latitudine si allontanano ulteriormente. Se usi una semplice equazione di triangolazione, potrebbe misurare la distanza con precisione in una posizione e sbagliata nell'altra, a causa della curvatura della Terra.

Grande distanza dal cerchio

Le rotte percorse per lunghe distanze intorno alla Terra sono conosciute come la Grande Distanza Circolare. Cioè... la distanza più breve tra due punti su una sfera differisce dai punti su una mappa piatta. Combina questo con il fatto che le linee di latitudine e longitudine non sono equidistanti... e hai un calcolo difficile.

Ecco un fantastico video che spiega come funzionano le Great Circles.

La formula Haversine

La distanza utilizzando la curvatura della Terra è incorporata nella formula Haversine, che utilizza la trigonometria per tenere conto della curvatura della Terra. Quando trovi la distanza tra 2 punti sulla Terra (in linea d'aria), una linea retta è in realtà un arco.

Questo è applicabile nel volo aereo: hai mai guardato la mappa dei voli e hai notato che sono arcuati? Questo perché volare in un arco tra due punti è più breve che direttamente verso la posizione.

PHP: calcola la distanza tra 2 punti di latitudine e longitudine

Ecco la formula PHP per calcolare la distanza tra due punti (insieme alla conversione Miglio vs. Chilometro) arrotondata a due cifre decimali.

function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'miles') {
  $theta = $longitude1 - $longitude2; 
  $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta))); 
  $distance = acos($distance); 
  $distance = rad2deg($distance); 
  $distance = $distance * 60 * 1.1515; 
  switch($unit) { 
    case 'miles': 
      break; 
    case 'kilometers' : 
      $distance = $distance * 1.609344; 
  } 
  return (round($distance,2)); 
}

Le variabili sono:

  • $Latitudine1 – una variabile per la latitudine della tua prima posizione.
  • $ Longitudine1 – una variabile per la longitudine della tua prima posizione
  • $Latitudine2 – una variabile per la latitudine della tua seconda posizione.
  • $ Longitudine2 – una variabile per la longitudine della tua seconda posizione.
  • $ unità – l'essere predefinito miglia. Questo può essere aggiornato o passato come chilometri.

Java: calcola la distanza tra 2 punti di latitudine e longitudine

public static double getDistanceBetweenPointsNew(double latitude1, double longitude1, double latitude2, double longitude2, String unit) {
    double theta = longitude1 - longitude2;
    double distance = 60 * 1.1515 * (180/Math.PI) * Math.acos(
        Math.sin(latitude1 * (Math.PI/180)) * Math.sin(latitude2 * (Math.PI/180)) + 
        Math.cos(latitude1 * (Math.PI/180)) * Math.cos(latitude2 * (Math.PI/180)) * Math.cos(theta * (Math.PI/180))
    );
    if (unit.equals("miles")) {
        return Math.round(distance, 2);
    } else if (unit.equals("kilometers")) {
        return Math.round(distance * 1.609344, 2);
    } else {
        return 0;
    }
}

Le variabili sono:

  • latitudine1 – una variabile per la latitudine della tua prima posizione.
  • longitudine1 – una variabile per la longitudine della tua prima posizione
  • latitudine2 – una variabile per la latitudine della tua seconda posizione.
  • longitudine2 – una variabile per la longitudine della tua seconda posizione.
  • unità – l'essere predefinito miglia. Questo può essere aggiornato o passato come chilometri.

Javascript: calcola la distanza tra 2 punti di latitudine e longitudine

function getDistanceBetweenPoints(latitude1, longitude1, latitude2, longitude2, unit = 'miles') {
    let theta = longitude1 - longitude2;
    let distance = 60 * 1.1515 * (180/Math.PI) * Math.acos(
        Math.sin(latitude1 * (Math.PI/180)) * Math.sin(latitude2 * (Math.PI/180)) + 
        Math.cos(latitude1 * (Math.PI/180)) * Math.cos(latitude2 * (Math.PI/180)) * Math.cos(theta * (Math.PI/180))
    );
    if (unit == 'miles') {
        return Math.round(distance, 2);
    } else if (unit == 'kilometers') {
        return Math.round(distance * 1.609344, 2);
    }
}

Le variabili sono:

  • latitudine1 – una variabile per la latitudine della tua prima posizione.
  • longitudine1 – una variabile per la longitudine della tua prima posizione
  • latitudine2 – una variabile per la latitudine della tua seconda posizione.
  • longitudine2 – una variabile per la longitudine della tua seconda posizione.
  • unità – l'essere predefinito miglia. Questo può essere aggiornato o passato come chilometri.

Python: calcola la distanza tra 2 punti di latitudine e longitudine

Ad ogni modo, ecco la formula Python per calcolare la distanza tra due punti (insieme alla conversione Mile vs. Kilometer) arrotondata a due cifre decimali. Ringraziamo mio figlio, Bill Karr, per il quale è un Data Scientist ApriINSIGHTS, per il codice.

from numpy import sin, cos, arccos, pi, round

def rad2deg(radians):
    degrees = radians * 180 / pi
    return degrees

def deg2rad(degrees):
    radians = degrees * pi / 180
    return radians

def getDistanceBetweenPointsNew(latitude1, longitude1, latitude2, longitude2, unit = 'miles'):
    
    theta = longitude1 - longitude2
    
    distance = 60 * 1.1515 * rad2deg(
        arccos(
            (sin(deg2rad(latitude1)) * sin(deg2rad(latitude2))) + 
            (cos(deg2rad(latitude1)) * cos(deg2rad(latitude2)) * cos(deg2rad(theta)))
        )
    )
    
    if unit == 'miles':
        return round(distance, 2)
    if unit == 'kilometers':
        return round(distance * 1.609344, 2)

Le variabili sono:

  • latitudine1 – una variabile per la tua prima posizione latitudine.
  • longitudine1 – una variabile per la tua prima posizione longitudine
  • latitudine2 – una variabile per la tua seconda posizione latitudine.
  • longitudine2 – una variabile per la tua seconda posizione longitudine.
  • unità – l'essere predefinito miglia. Questo può essere aggiornato o passato come chilometri.

MySQL: recupero di tutti i record all'interno di un intervallo calcolando la distanza in miglia utilizzando latitudine e longitudine

È anche possibile utilizzare SQL per calcolare tutti i record entro una distanza specifica. In questo esempio, interrogherò MyTable in MySQL per trovare tutti i record che sono inferiori o uguali alla variabile $distanza (in miglia) dalla mia posizione a $latitudine e $longitudine:

La query per il recupero di tutti i record all'interno di uno specifico distanza calcolando la distanza in miglia tra due punti di latitudine e longitudine sono:

$query = "SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`latitude`*pi()/180)) + cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$longitude."- `longitude`)*pi()/180)))) * 180/pi()) * 60 * 1.1515) as distance FROM `table` WHERE distance <= ".$distance."

Dovrai personalizzare questo:

  • $ longitudine - questa è una variabile PHP in cui sto passando la longitudine del punto.
  • $ latitudine - questa è una variabile PHP in cui sto passando la longitudine del punto.
  • $ distanza - questa è la distanza a cui vorresti trovare tutti i record minore o uguale.
  • tavolo - questa è la tabella ... ti consigliamo di sostituirla con il nome della tua tabella.
  • latitudine - questo è il campo della tua latitudine.
  • longitudine - questo è il campo della tua longitudine.

MySQL: recupero di tutti i record all'interno di un intervallo calcolando la distanza in chilometri utilizzando latitudine e longitudine

Ed ecco la query SQL che utilizza i chilometri in MySQL:

$query = "SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`latitude`*pi()/180)) + cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$longitude."- `longitude`) * pi()/180)))) * 180/pi()) * 60 * 1.1515 * 1.609344) as distance FROM `table` WHERE distance <= ".$distance."

Dovrai personalizzare questo:

  • $ longitudine - questa è una variabile PHP in cui sto passando la longitudine del punto.
  • $ latitudine - questa è una variabile PHP in cui sto passando la longitudine del punto.
  • $ distanza - questa è la distanza a cui vorresti trovare tutti i record minore o uguale.
  • tavolo - questa è la tabella ... ti consigliamo di sostituirla con il nome della tua tabella.
  • latitudine - questo è il campo della tua latitudine.
  • longitudine - questo è il campo della tua longitudine.

Ho utilizzato questo codice in una piattaforma di mappatura aziendale che abbiamo utilizzato per un negozio al dettaglio con oltre 1,000 sedi in tutto il Nord America e ha funzionato magnificamente.

Distanza geografica di Microsoft SQL Server: STDistance

Se stai utilizzando Microsoft SQL Server, offrono la propria funzione, STDistanza per calcolare la distanza tra due punti utilizzando il tipo di dati Geografia.

DECLARE @g geography;  
DECLARE @h geography;  
SET @g = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);  
SET @h = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);  
SELECT @g.STDistance(@h);  

Punta di cappello a Manash Sahoo, vicepresidente e architetto di Highbridge.

Douglas Karr

Douglas Karr è il fondatore del Martech Zone e un riconosciuto esperto di trasformazione digitale. Douglas ha aiutato ad avviare diverse start-up MarTech di successo, ha assistito nella due diligence di oltre $ 5 miliardi in acquisizioni e investimenti MarTech e continua a lanciare le proprie piattaforme e servizi. È un co-fondatore di Highbridge, una società di consulenza per la trasformazione digitale. Douglas è anche un autore pubblicato di una guida per manichini e di un libro sulla leadership aziendale.

Articoli Correlati

Commenti

  1. Grazie mille per la condivisione. Questo è stato un semplice lavoro di copia e incolla e funziona alla grande. Mi hai risparmiato un sacco di tempo.
    Cordiali saluti per chiunque effettui il porting su C:
    double deg2rad(double deg) { return deg*(3.14159265358979323846/180.0); }

  2. Posto molto bello - ha funzionato molto bene - ho dovuto solo cambiare il nome del tavolo che reggeva il lat-long. Funziona abbastanza velocemente per .. Ho un numero ragionevolmente piccolo di lat-long (< 400) ma penso che si ridimensionerebbe bene. Bel sito anche: l'ho appena aggiunto al mio account del.icio.us e lo controllerò regolarmente.

    1. Felice di aiutarti, amico di rotaie!

      Ora sono alla ricerca di una funzione PHP "in Polygon" che prenda una matrice di coordinate di latitudine e longitudine in sequenza e capisca se un altro punto si trova all'interno o all'esterno del poligono.

  3. penso che il tuo SQL abbia bisogno di un'istruzione have.
    invece di WHERE distanza <= $distanza potrebbe essere necessario
    usa HAVING distanza <= $distanza

    altrimenti grazie per avermi fatto risparmiare un sacco di tempo ed energia.

  4. Grazie mille per aver condiviso questo codice. Mi ha fatto risparmiare un sacco di tempo di sviluppo. Inoltre, grazie ai tuoi lettori per aver sottolineato che un'istruzione HAVING è necessaria per MySQL 5.x. Molto utile.

  5. Ho anche scoperto che WHERE non ha funzionato per me. Cambiato in HAVING e tutto funziona perfettamente. All'inizio non ho letto i commenti e li ho riscritti usando una selezione annidata. Entrambi funzioneranno bene.

  6. Incredibilmente utile, grazie mille! Stavo avendo dei problemi con il nuovo "HAVING", piuttosto che "WHERE", ma una volta che ho letto i commenti qui (dopo circa mezz'ora di digrignare i denti per la frustrazione =P), ho funzionato bene. Grazie ^_^

  7. Tieni presente che un'istruzione selezionata come quella sarà molto intensa dal punto di vista computazionale e quindi lenta. Se hai molte di queste domande, può impantanare le cose abbastanza rapidamente.

    Un approccio molto meno intenso consiste nell'eseguire una prima selezione (grezza) utilizzando un'area QUADRATA definita da una distanza calcolata, ad esempio "seleziona * dal nome della tabella dove latitudine tra lat1 e lat2 e longitudine tra lon1 e lon2". lat1 = targetlatitude – latdiff, lat2 = targetlatitude + latdiff, simile a lon. latdiff ~= distanza / 111 (per km), o distanza/69 per miglia poiché 1 grado di latitudine è ~ 111 km (leggera variazione poiché la terra è leggermente ovale, ma sufficiente per questo scopo). londiff = distanza / (abs(cos(deg2rad(latitude))*111)) — o 69 per miglia (puoi effettivamente prendere un quadrato leggermente più grande per tenere conto delle variazioni). Quindi prendi il risultato e inseriscilo nella selezione radiale. Non dimenticare di tenere conto delle coordinate fuori limite, ad esempio l'intervallo di longitudine accettabile è compreso tra -180 e +180 e l'intervallo di latitudine accettabile è compreso tra -90 e +90 - nel caso in cui il tuo latdiff o londiff si trovi al di fuori di questo intervallo . Si noti che nella maggior parte dei casi ciò potrebbe non essere applicabile poiché influisce solo sui calcoli su una linea attraverso l'Oceano Pacifico da un polo all'altro, sebbene intersechi parte del chukotka e parte dell'alaska.

    Ciò che otteniamo in questo modo è una significativa riduzione del numero di punti rispetto ai quali si effettua questo calcolo. Se si dispone di un milione di punti globali nel database distribuiti in modo pressoché uniforme e si desidera effettuare una ricerca entro 100 km, la prima ricerca (veloce) è di un'area di 10000 kmq e probabilmente produrrà circa 20 risultati (basati su una distribuzione uniforme su un superficie di circa 500 milioni di kmq), il che significa che si esegue il complesso calcolo della distanza 20 volte per questa query anziché un milione di volte.

      1. Consiglio fantastico! In realtà ho lavorato con uno sviluppatore che ha scritto una funzione che tirava il quadrato interno e quindi una funzione ricorsiva che creava "quadrati" attorno al perimetro per includere ed escludere i punti rimanenti. Il risultato è stato un risultato incredibilmente veloce: poteva valutare milioni di punti in microsecondi.

        Il mio approccio sopra è decisamente "grezzo" ma capace. Grazie ancora!

        1. Douglas,

          Ho provato a usare mysql e php per valutare se un punto lat long si trova all'interno di un poligono. Sai se il tuo amico sviluppatore ha pubblicato degli esempi su come portare a termine questo compito. Oppure conosci qualche buon esempio. Grazie in anticipo.

  8. Ciao a tutti questa è la mia istruzione SQL di prova:

    SELECT DISTINCT area_id, (
    (
    (
    acos( sin( ( 13.65 * pi( ) /180 ) ) * sin( (
    `lat_dec` * pi( ) /180 ) ) + cos( ( 13.65 * pi( ) /180 ) ) * cos( (
    `lat_dec` * pi( ) /180 )
    ) * cos( (
    ( 51.02 - `lon_dec` ) * pi( ) /180 )
    )
    )
    ) *180 / pi( )
    ) *60 * 1.1515 * 1.609344
    ) AS distance
    FROM `post_codes` WHERE distance <= 50

    e Mysql mi sta dicendo quella distanza, non esiste come colonna, posso usare order by, posso farlo senza WHERE, e funziona, ma non con esso...

  9. Questo è fantastico, tuttavia è proprio come volano gli uccelli. Sarebbe fantastico provare a incorporare l'API di Google Maps in questo in qualche modo (magari usando strade ecc.) Solo per dare un'idea usando un diverso mezzo di trasporto. Devo ancora creare una funzione di ricottura simulata in PHP che sia in grado di offrire una soluzione efficiente al problema del commesso viaggiatore. Ma penso che potrei essere in grado di riutilizzare parte del tuo codice per farlo.

  10. Buon articolo! Ho trovato molti articoli che descrivono come calcolare la distanza tra due punti, ma stavo davvero cercando lo snippet SQL.

  11. 2 giorni di ricerca per trovare finalmente questa pagina che risolve il mio problema. Sembra che farei meglio a tirare fuori la mia WolframAlpha e rispolverare i miei calcoli. Il passaggio da WHERE a HAVING ha il mio script funzionante. GRAZIE

  12. Vorrei che questa fosse la prima pagina che ho trovato su questo. Dopo aver provato molti comandi diversi, questo era l'unico a funzionare correttamente e con modifiche minime necessarie per adattarsi al mio database.
    Grazie mille!

  13. Vorrei che questa fosse la prima pagina che ho trovato su questo. Dopo aver provato molti comandi diversi, questo era l'unico a funzionare correttamente e con modifiche minime necessarie per adattarsi al mio database.
    Grazie mille!

  14. grazie per aver pubblicato questo utile articolo,  
    ma per qualche motivo vorrei chiedere
    come ottenere la distanza tra le coordinate all'interno di mysql db e le coordinate inserite in php dall'utente?
    per descrivere più chiaramente:
    1. l'utente deve inserire [id] per selezionare i dati specificati dal db e le coordinate dell'utente stesso
    2. il file php ottiene i dati di destinazione (coordinate) utilizzando [id] e quindi calcola la distanza tra l'utente e il punto di destinazione

    o puoi semplicemente ottenere la distanza dal codice qui sotto?

    $qry = “SELECT *,(((acos(sin((“.$latitude.”*pi()/180))) * sin((`Latitude`*pi()/180))+cos((“. $latitudine."*pi()/180)) * cos((`Latitudine`*pi()/180)) * cos(((".$longitudine."- `Longitudine`)*pi()/180) )))*180/pi())*60*1.1515*1.609344) come distanza DA `MyTable` DOVE distanza >= “.$distanza.” >>>>posso “ridurre” la distanza da qui?
    grazie ancora,
    Timmy S

  15. ok, tutto quello che ho provato non funziona. Voglio dire, quello che ho funziona, ma le distanze sono lontane.

    Qualcuno potrebbe vedere cosa c'è di sbagliato in questo codice?

    if(isset($_POST['inviato'])){ $z = $_POST['zipcode']; $r = $_POST['raggio']; echo “Risultati per “.$z; $sql = mysql_query(“SELECT DISTINCT m.zipcode, m.MktName, m.LocAddSt, m.LocAddCity, m.LocAddState, m.x1, m.y1, m.verified, z1.lat, z2.lon, z1. city,z1.state DA mrk m, zip z1, zip z2 DOVE m.zipcode = z1.zipcode AND z2.zipcode = $z AND (3963 * acos( truncate( sin( z2.lat / 57.2958 ) * sin( m. y1 / 57.2958 ) + cos( z2.lat / 57.2958 ) * cos( m.y1 / 57.2958 ) * cos( m.x1 / 57.2958 – z2.lon / 57.2958 ) , 8 ) ) ) <= $r ") o die (mysql_error()); while($riga = mysql_fetch_array($sql )) { $store1 = $riga['NomeMkt']."”; $negozio = $riga['LocAddSt'].””; $store .= $riga['LocAddCity'].”, “.$riga['LocAddState'].” “.$riga['codice postale']; $latitudine1 = $riga['lat']; $longitudine1 = $riga['lon']; $latitudine2 = $riga['y1']; $longitudine2 = $riga['x1']; $città = $riga['città']; $stato = $riga['stato']; $dis = getnew($latitudine1, $longitudine1, $latitudine2, $longitudine2, $unità = 'Mi'); // $dis = distanza($lat1, $lon1, $lat2, $lon2); $verificato = $riga['verificato']; if($verificato == '1'){ echo “”; echo “”.$store.””; eco $dis . " lontano miglia"; eco ""; } else { echo “”.$store.””; eco $dis . " lontano miglia"; eco ""; } }}

    il mio codice functions.php
    funzione getnew($latitudine1, $longitudine1, $latitudine2, $longitudine2, $unità = 'Mi') { $teta = $longitudine1 – $longitudine2; $distanza = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)) ); $distanza = acos($distanza); $distanza = rad2deg($distanza); $distanza = $distanza * 60 * 1.1515; switch($unit) { case 'Mi': break; caso 'Km' : $distanza = $distanza * 1.609344; } ritorno (round($distanza,2)); }

    Grazie in anticipo

  16. Ehi Douglas, ottimo articolo. Ho trovato davvero interessante la tua spiegazione dei concetti geografici e del codice. Il mio unico suggerimento sarebbe di spaziare e far rientrare il codice per la visualizzazione (come Stackoverflow, ad esempio). Capisco che vuoi risparmiare spazio, ma la spaziatura/rientro del codice convenzionale renderebbe molto più facile per me, come programmatore, leggere e sezionare. Comunque è una piccola cosa. Continuate così.

  17. sembra più veloce (mysql 5.9) usare due volte la formula nella selezione e dove:
    $formula = “(((acos(sin((“.$latitude.”*pi()/180)) * sin((`Latitude`*pi()/180))+cos((“.$latitude. ”*pi()/180)) * cos((`Latitude`*pi()/180)) * cos(((“.$longitude.”- `Longitude`)*pi()/180)))) *180/pi())*60*1.1515*1.609344)”;
    $sql = 'SELEZIONA *, '.$formula.' come distanza DAL tavolo WHERE '..$formula.' <= '.$distanza;

  18. Grazie mille per aver letto questo articolo. È molto utile.
    PHP è stato inizialmente creato come una semplice piattaforma di scripting chiamata "Home page personale". Oggi PHP (abbreviazione di Hypertext Preprocessor) è un'alternativa alla tecnologia ASP (Active Server Pages) di Microsoft.

    PHP è un linguaggio lato server open source utilizzato per la creazione di pagine Web dinamiche. Può essere incorporato in HTML. PHP viene solitamente utilizzato insieme a un database MySQL su server Web Linux/UNIX. È probabilmente il linguaggio di scripting più popolare.

  19. Ho trovato la soluzione di cui sopra non funziona correttamente.
    devo cambiare in:

    $qqq = “SELECT *,(((acos(sin((“.$latitude.”*pi()/180)) * sin((`latt`*pi()/180))+cos((” . $latitudine . “*pi()/180)) * cos((`latt`*pi()/180)) * cos(((” . $longitudine . “- `longt`)*pi()/180) )))*180/pi())*60*1.1515) come distanza DA `registro` “;

  20. Ciao, per favore, avrò davvero bisogno del tuo aiuto su questo.

    Ho fatto una richiesta di get al mio server web
    53.47792 = $latitudine
    -2.23389 = $longitudine
    e 20 = la distanza che voglio recuperare

    Tuttavia, usando la tua formula, recupera tutte le righe nel mio db

    $results = DB::select( DB::raw(“SELECT *, (((acos(sin((“.$latitude.”pi()/180)) * sin((latpi()/180))+cos((“.$latitudine.”pi()/180)) * cos((latpi()/180)) * cos(((“.$longitudine.”- lng)pi()/180))))180/pi())601.1515*1.609344) come distanza DA marcatori AVENTI distanza >= “.$distanza ));

    [{“id”:1,”name”:”Frankie Johnnie & Luigo Too”,”address”:”939 W El Camino Real, Mountain View, CA”,”lat”:37.386337280273,”lng”:-122.08582305908, ”distanza”:16079.294719663},{“id”:2,”nome”:”Amici's East Coast Pizzeria”,”indirizzo”:”790 Castro St, Mountain View, CA”,”lat”:37.387138366699,”lng”: -122.08323669434,”distanza”:16079.175940152},{“id”:3,”nome”:”Kapp's Pizza Bar & Grill”,”indirizzo”:”191 Castro St, Mountain View, CA”,”lat”:37.393886566162, ”lng”:-122.07891845703,”distance”:16078.381373826},{“id”:4,”name”:”Round Table Pizza: Mountain View”,”address”:”570 N Shoreline Blvd, Mountain View, CA”, ”lat”. View, CA”,”lat”:37.402652740479”,lng”:-122.07935333252,”distance”:16077.420540582},{“id”:5,”name”:”Origano's Wood-Fired Pizza”,”address”:”619 El Camino Real, Los Altos, CA”,”lat”:37.394012451172,”lng”:-122.09552764893,”distanza”:16078.563225154},{“ id”.

    Voglio recuperare solo righe con 20 miglia ma porta tutte le righe. Per favore, cosa sto sbagliando

  21. Sto cercando una query simile ma ho intensificato un po ': in breve, questo è raggruppare tutte le coordinate entro 2 miglia da ciascuna coordinata e quindi contare quante coordinate in ciascun gruppo e produrre solo un gruppo che ha il maggior numero di coordinate, anche se hai più di un gruppo tra i gruppi che hanno il maggior numero di coordinate – emetti semplicemente il gruppo casuale dai gruppi con lo stesso numero più grande –

Cosa ne pensi?

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.