Questione : Google Maps api: come calcolare distanza fra una posizione e un codice di POSTALE?

Sto generando un widget dei programmi del google per un Web site. L'utente imposta un codice del POSTALE ed un certo numero di posizioni nelle vicinanze di quel codice di POSTALE sono tracciate sulla necessità di map.

I di indicare che fin dove ogni posizione proviene dal codice del POSTALE impostato (molte saranno nei codici di POSTALE vicini). il

I ha il lungo/latitudine di ogni posizione ma di non sure come calcolare la distanza ad una CHIUSURA LAMPO. Delle idee? il

I che lo presuppone richiederà questo metodo di api ma non posso risolvere la sintassi: rel= " nofollow "„ del _blank„„ del target= " di http://code.google.com/apis/maps/documentation/javascript/v2/reference.html#GLatLng.distanceFrom del href= del
s/maps/documentation/javascript/v2/reference.html#GLatLng.distanceFrom
di http://code.google.com/api class= del

Risposta : Google Maps api: come calcolare distanza fra una posizione e un codice di POSTALE?

Un codice di POSTALE non è una posizione, esso è itinerario dell'elemento portante postale.  Nelle città degli S.U.A. orientali ci possono essere codici di POSTALE che sono molto piccoli, alcune costruzioni a Manhattan.  Nelle grandi condizioni dell'ovest, i codici di POSTALE possono essere molti, molte miglia larghe.

Le coordinate del programma sono date “dal geocode„ che è un accoppiamento longitudine/di latitudine.  I dati sono espressi sempre in una serie di caratteri con due firmati o i numeri decimali senza firma separati da un virgola.  La distanza fra due “geocodes„ può essere computata, mentre il corvo vola, mediante l'uso della formula di Haversine.
http://en.wikipedia.org/wiki/Haversine_formula

Mentre un itinerario di grande cerchio è la distanza di A-B più esatta, la relativa “esattezza„ non può essere esattamente che cosa volete.  In breve le distanze attraverso la nostra terra, la geometria piana è sufficiente esatte.
http://en.wikipedia.org/wiki/Cartesian_coordinate_system

L'altra componente di esattezza del grande cerchio va al modo di trasporto.  È altamente utile per i velivoli e le navi d'alto mare.  Ma se le vostre corse di A-B sono fatte attraverso l'automobile e dovete attraversare un fiume, per esempio, la formula di Haversine lo invitare a andare diritto attraverso il fiume se ci è un ponticello oppure no.

Nella mia esperienza con i calcoli e Google Maps di Haversine, ho trovato che potete ottenere un'approssimazione ragionevole della distanza movente corretta moltiplicando la distanza di Haversine per 1.15 - 1.25.  Da ragionevole, significo, “nessuno ho protestato„ circa il margine di errore.  In breve i viaggi, i calcoli sono meno esatti ed il fattore di fondente deve tendere alla parte alta.  Per i viaggi più lunghi i calcoli sono più esatti ed il fattore di fondente può essere ridotto.

“L'allineare„ determinando la distanza è determinato valutando una serie “di minitrips„ uno per ogni girare-punto lungo l'itinerario.  Google Maps può fare questo.  IIRC là è una chiamata di api che restituirà questi dati.

Google Maps recentemente liberato api ha alcune caratteristiche stupefacente robuste.   Per esempio, era necessario “a geocode„ un indirizzo prima dell'aggiunta dell'a pressione al programma - ora potete dare semplicemente l'indirizzo o il nome della posizione (“la Casa Bianca„) e Google Maps potranno spesso tradurre il nome e/o l'indirizzo in geolocation per voi.  Ho un articolo qui all'EE che copre alcune di nuove caratteristiche.
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_3350-Using-the-Google-Maps-API-in-PHP.html

Il frammento di codice insegna al senso computare le grandi distanze di cerchio.

Google e Yahoo Geocoders restituiranno un geocode se non date loro niente ma un codice di postale, comunque l'esattezza non è interamente quella grande.  Il Yahoo Geocoder è il più facile da usare.
http://developer.yahoo.com/maps/rest/V1/geocode.html

Sperare che questa Info sia utile voi.  Inviare prego indietro se avete qualunque domande.  Migliori riguardi, ~Ray
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
\n";

// COMPUTE THE DISTANCE BETWEEN TWO LAT/LON PAIRS

// MAN PAGE: http://en.wikipedia.org/wiki/Haversine_formula
function compute_distance($from_lat, $from_lon, $to_lat, $to_lon, $units='KM')
{
    $units = strtoupper(substr(trim($units),0,1));
    // ENSURE THAT ALL ARE FLOATING POINT VALUES
    $from_lat = floatval($from_lat);
    $from_lon = floatval($from_lon);
    $to_lat   = floatval($to_lat);
    $to_lon   = floatval($to_lon);

    // IF THE SAME POINT
    if ( ($from_lat == $to_lat) && ($from_lon == $to_lon) )
    {
        return 0.0;
    }

    // COMPUTE THE DISTANCE WITH THE HAVERSINE FORMULA
    $distance 
    = acos
    ( sin(deg2rad($from_lat))
    * sin(deg2rad($to_lat))
    + cos(deg2rad($from_lat))
    * cos(deg2rad($to_lat))
    * cos(deg2rad($from_lon - $to_lon)) 
    )
    ;

    $distance = rad2deg($distance);

    // DISTANCE IN MILES AND KM - ADD OTHERS IF NEEDED
    $miles = (float) $distance * 69.0;
    $km    = (float) $miles * 1.61;

    // RETURN MILES
    if ($units == 'M') return round($miles,1);

    // RETURN KILOMETERS = MILES * 1.61
    if ($units == 'K') return round($km,2);
}

if (!empty($_GET))
{
    $distance = compute_distance($_GET["a_lat"], $_GET["a_lon"], $_GET["b_lat"], $_GET["b_lon"], $_GET["units"]);
    echo $distance . ' ' . $_GET["units"];
}
?>


Camp David
La Casa Bianca 
PROVARLA QUI:

INDICARE UN LAT   LON  
INDICARE IL LAT DI B   LON  
Miglia
Chilometri


Altre soluzioni  
 
programming4us programming4us