Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di AtoXx
    Registrato dal
    Nov 2007
    Messaggi
    119

    Calcolare distanza tra 2 città utilizzando le google api

    Salve a tutti, scusate se il titolo non è molto chiaro ma vi spiego meglio qual è il mio problema:
    dovrei calcolare la distanza fra 2 città sfruttando possibilmente le google api. Ho trovato come fare ma sfruttano javascript ed a me questi dati servono lato php.

    Come risolvo?


    Vi spiego un attimo il contesto in cui mi trovo:
    dopo il submit di un form in base alla città indicata devo trovare da un insieme di 3 città quella più vincina(in termini di percorso auto) a quella indicata nel form.
    Ultima modifica di AtoXx; 30-07-2015 a 15:06

  2. #2
    Utente di HTML.it L'avatar di AtoXx
    Registrato dal
    Nov 2007
    Messaggi
    119
    Novità: ho scoperto che tramite questo link "https://maps.googleapis.com/maps/api/distancematrix/json?origins=Roma,Italia&destinations=Milano,Itali a&mode=driving&language=it"

    riesco ad ottenere le info di cui ho bisogno.

    Quindi ho fatto uno script del genere:
    Codice PHP:

    $url 
    'https://maps.googleapis.com/maps/api/distancematrix/json?origins=Roma,Italia&destinations=Milano,Italia&mode=driving&language=it';
    $data file_get_contents($url); 
    però alla sua esecuzione mi restituisce
    Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\xampp\htdocs\gmap\si.php on line 17

    Warning: file_get_contents(https://maps.googleapis.com/maps/api...&language=it): failed to open stream: php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\xampp\htdocs\gmap\si.php on line 17
    NULL



    Edit: ho capito che è un problema di configurazione aziendale del DSN e questa soluzione non è da perseguire. Quindi resto col problema del primo post
    Ultima modifica di AtoXx; 30-07-2015 a 16:57

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ciao,

    io per calcolare la distanza tra due città lo faccio in linea d'aria, lato php, avendo le due coordinate geografiche(partenza, arrivo).
    Le coordinate d'arrivo ovviamente le ho già lato server; quando l'utente sceglie una città, lato client, faccio una chiamata asincrona a google maps e compilo un campo input occulto con le cordinate di partenza.

    Il server riceve i dati e calcola qual è la citta più vicina(se ti interessa ti posto la classe), in base a quello rispondo con la città più vicino e, lato client, calcolo il tragitto su strada.
    Avviamente non è affidabile al 100% in quanto se c'è ad esempio una montagna in mezzo, non è detto che quella sia la città più vicina su strada, però, per quello che faccio io, mi va benissimo.

    Volendo potresti anche aggiungere un bottone di geolocalizzazione(in questo caso l'utente ti dovrebbe dare l'autorizzazione).
    Attenzione però, su un pc avresti una "precisione" con un margine d'errore di 25Km.
    Su un pc collegato a una rete wifi, il margine d'errore sarebbe di pochi metri, mentre su un cellulare sarebbe preciso.

    Roberto

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prova usando l'IP del dominio di maps.googleapis, dovresti evitare di passare per il DNS aziendale

  5. #5
    Utente di HTML.it L'avatar di AtoXx
    Registrato dal
    Nov 2007
    Messaggi
    119
    Quote Originariamente inviata da robynosse Visualizza il messaggio
    Ciao,

    io per calcolare la distanza tra due città lo faccio in linea d'aria, lato php, avendo le due coordinate geografiche(partenza, arrivo).
    Le coordinate d'arrivo ovviamente le ho già lato server; quando l'utente sceglie una città, lato client, faccio una chiamata asincrona a google maps e compilo un campo input occulto con le cordinate di partenza.

    Il server riceve i dati e calcola qual è la citta più vicina(se ti interessa ti posto la classe), in base a quello rispondo con la città più vicino e, lato client, calcolo il tragitto su strada.
    Avviamente non è affidabile al 100% in quanto se c'è ad esempio una montagna in mezzo, non è detto che quella sia la città più vicina su strada, però, per quello che faccio io, mi va benissimo.

    Volendo potresti anche aggiungere un bottone di geolocalizzazione(in questo caso l'utente ti dovrebbe dare l'autorizzazione).
    Attenzione però, su un pc avresti una "precisione" con un margine d'errore di 25Km.
    Su un pc collegato a una rete wifi, il margine d'errore sarebbe di pochi metri, mentre su un cellulare sarebbe preciso.

    Roberto


    ti ringrazio per la dritta ma forse non mi serve più saperlo, lo saprò fra qualche giorno. Però se vuoi puoi cmq mettere la tua soluzione così magari può essere d'aiuto.


    Quote Originariamente inviata da clasku Visualizza il messaggio
    prova usando l'IP del dominio di maps.googleapis, dovresti evitare di passare per il DNS aziendale
    Il problema è che se cambia l'ip non mi funziona più il servizio, volevo trovare una soluzione definitiva ma nel caso posso sempre fare come dici per tamponare
    Ultima modifica di AtoXx; 17-08-2015 a 15:53

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.