2009-06-30 17 views
8

Sono riuscito a far funzionare due funzioni per calcolare le distanze tra due punti su una mappa di google. Uno che ho raccolto (rubato) da vari punti del web e l'altro utilizzando il metodo GLatLng.distanceFrom nell'API di Google Maps.Google Maps calcola la distanza errata?

Il motivo che sto utilizzando due funzioni è perché ho notato qualcosa di strano i risultati mi stavo modulo di Google, ad esempio, la distanza tra Lands End e John O Groats nel Regno Unito viene restituito come segue

  • la mia funzione: 985 km
  • Google: 986 km
  • Wikipedia: 970 km

la differenza 15/16 km dal risultato Wikipedia è perché Google restituisce una posizione resu A circa 15 km dall'attuale John O Groats. Quindi è giusto.

Allora ho provato la distanza tra Londra e Milano e ha ottenuto

  • La mia funzione: 1232 km
  • Google: 1234 km
  • Wolfram Alpha: 958,5 km

Così qualcuno è più di 250 km. Poi ho provato Londra a New York

  • La mia funzione: 8244 km
  • Google: 8254 km
  • Wolfram Alpha: 5581 km

In generale, la distanza tra Londra e New York è pensato per essere intorno 5.560 km. Ma ora sia la mia funzione che la funzione di Google sembrano essere lontane dal marchio.

La funzione che sto usando can be found here. Le mie scuse all'autore per non aver collegato al sito originale, ma il layout è davvero confuso. Sto usando la funzione distHaversine.

Devo ammettere che la matematica è ben al di là del mio livello di comfort, ma ho capito il senso e, a quanto ho capito, Google usa anche il metodo Haversine. Capisco anche che può essere spento di circa lo 0,3%, ma ciò non spiegherebbe le differenze che sto vedendo. E sono ulteriormente confuso dal fatto che a volte è giusto e talvolta lontano dalle distanze comunemente stabilite tra i luoghi. Sembra che maggiore è la distanza, maggiore è la distanza.

Quindi chi ha torto. Google e la funzione che sto utilizzando, o chiunque altro?

+3

Quando inserisco manualmente le coordinate lat/long per Londra e New York nel sito di origine (http://www.movable-type.co.uk/scripts/latlong.html), indica la distanza corretta di 5560 km, puoi confermare le coordinate utilizzate? – Peter

+0

London lat1: -0.1262362, lon1: 51.5001524 New York lat2: -73.986951, lon2: 40.756054 – gargantuan

+1

Oh caro. Sembra che io abbia combinato My Lattitude and Longditudes. Peter, dal momento che hai indicato la soluzione ovvia, che sarebbe stata testarla con lo strumento Moveable Type, sentiti libero di rispondere alle domande e accetterò la risposta. – gargantuan

risposta

3

Come si è visto, ho avuto i parametri di latitudine e longitudine nel modo sbagliato (aria, acqua,?).

1

A meno che non sto fraintendendo questo:

Può la discrepanza emanare dal fatto che Google Maps calcola la distanza che si guida e non e 'in linea d'aria'?

+0

Vedi il commento di gargantaun alla domanda originaria. Il problema è risolto, ma nessuno ha dato una "risposta" –

3

Google Maps non calcolare la distanza in linea retta più breve - si va da strade e