Pytanie : Google Mapa API: dlaczego odległość od lokacja Kod pocztowy?

I tworzyć google mapa widget dla strona internetowa. The użytkownik wchodzić do Kod pocztowy i liczba lokacja w pobliżu ten Kod pocztowy knuć na the map.

I potrzeba jak daleki daleki lokacja być od the Kod pocztowy wchodzić do (kod pocztowy być w okoliczny Kod pocztowy).

I mieć the długi/szerokość długi lokacja ale am pewny dlaczego the odległość ZAMEK BŁYSKAWICZNY. Jakaś pomysł?

I am ono wymagać ten API metoda ale I móc the składnia: "distanceFrom "
http://code.google.com/api s/maps/documentation/javascript/v2/reference.html#GLatLng.distanceFrom

Odpowiedź : Google Mapa API: dlaczego odległość od lokacja Kod pocztowy?

Kod pocztowy być lokacja, ono być pocztowy przewoźnik trasa.  W the miasto the wschodni USA tam  móc Kod pocztowy który być bardzo mały, mały budynek w Manhattan.  W the wielki stan the zachód, Kod pocztowy móc mila, wiele mila szeroki.

Mapa coordinates dać the "geocode" che być szerokość/longitude para.  The dane zawsze wyrażać w charakter sznurek z dwa podpisywać lub niepodpisany dziesiątkowy liczba oddzielać przecinek.  The odległość między dwa "geocodes" móc obliczać, jako the wroni komarnica, przy pomocy the Haversine formuła.
http://en.wikipedia.org/wiki/Haversine_formula

Podczas Gdy Wielki Okrąg trasa być the ścisły A-B odległość, swój "dokładność" móc dokładnie być ty chcieć.  Dla krótki odległość przez nasz ziemski, płaski geometria być wystarczająco ścisły.
http://en.wikipedia.org/wiki/Cartesian_coordinate_system

The inny składnik Wielki Okrąg dokładność iść the tryb transport.  Ono być wysoce pożytecznie dla samolot i pożytecznie naczynie.  Ale jeżeli twój A-B podróż być samochód i ty potrzebować rzeka, na przykład, the Haversine formuła oczekiwać ty prosto przez the rzeka czy tam  być most lub nie.

W mój doświadczenie z Haversine obliczenie i Google Mapa, I znajdować że ty móc rozsądny aproksymacja the poprawny jeżdżenie odległość the Haversine odległość 1.15 1.25.  Rozsądny, I znaczyć, "rozsądny narzekać" o the margines błąd.  Dla krótki wycieczka, the obliczenia być mniej ścisły i the fudge czynnik potrzeba the ekskluzywny.  Dla długi wycieczka the obliczenia być ścisły i the fudge czynnik móc zmniejszać.

The "prawdziwy" jechać odległość ustalać seria "minitrips" jeden dla each obracać-wskazywać wzdłuż the trasa.  Google Mapa móc to.  IIRC tam  być API wezwanie który wracać ten dane.

The niedawno uwalniać Google Mapa API mieć niektóre niesamowicie krzepko cecha.   Na przykład, ono być konieczny "geocode" adres przed pushpin the mapa - teraz ty móc po prostu the adres lub the imię the lokacja ("The Biały Dom") i Google Mapa często być sprawnie the imię and/or adres w the geolocation dla ty.  I mieć artykuł tutaj przy EE który zakrywać i the nowy cecha.
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_3350-Using-the-Google-Maps-API-in-PHP.html

The kod odrzynek uczyć the sposób Wielki Okrąg odległość.

Google i Yahoo Geocoders wracać geocode jeżeli ty dawać dawać ale kod pocztowy, jednakże the dokładność być wszystko nie wielki.  The Yahoo Geocoder być the łatwy.
http://developer.yahoo.com/maps/rest/V1/geocode.html

Mieć Nadzieję ten info być pomocniczo ty.  Zadawalać poczta z powrotem jeżeli ty mieć jakaś pytanie.  Najlepszy uwzględnienie, ~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"];
}
?>


Obozowy David
Biel Dom
BADAĆ ONO TUTAJ:

WSKAZYWAĆ LAT   LON  
WSKAZYWAĆ B LAT   LON  
Mila
Kilometr


Inne rozwiązania  
 
programming4us programming4us