Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    php, distanza tra indirizzi

    Buongiorno, supponendo di avere una tabella con un elenco di indirizzi

    Mario, via Roma 1 Treviso
    Paolo, via Industriale Padova
    Giulio, via Cupertino Padova
    ...

    Sapendo che mi trovo in via Vicinale Udine, come posso fare per ottenere l'elenco degli indirizzi che distano da me non più di 50km?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Ti servirà sicuramente qualche API esterna, verosimilmente Goggle Maps, Here Maps, Openstreet Maps ecc...
    Da scegliere in base alle tue esigenze, soprattutto in base a quante query prevedi di fare verso l'API e non saranno pochissime vista la funzionalità che cerchi, ogni volta dovrai confrontare un indirizzo verso altri n.
    Devi vedere tra le varie API se già mettono a disposizione un servizio per cui gli dai 2 indirizzi e ti ritorna la loro distanza (in linea d'aria o via strada, non so come ti serve).
    Nel case nessuno abbia questo servizio o chi lo mette a disposizione non vuoi usarlo per altri motivi, l'alternativa sarà richiedere la posizione GPS dei due indirizzi e poi calcolarti tu la distanza con la formula di Haversine, potresti usare il teorema di Pitagora, ma su lunghe distanze sbaglia di tanto a causa della curvatura della superficie terrestre. Se invece sei terrapiattista funziona sempre bene anche Pitagora

    Altra soluzione è quella di salvarti le coordinate di un indirizzo ogni volta che ne inserisci uno nuovo nel DB, così da richiederle una volta sola per ogni indirizzo, e poi utilizzarle per la distanza in linea d'aria senza chiederle di nuovo al servizio API.
    Ultima modifica di Alhazred; 28-08-2024 a 10:56

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.