Frage : Google Maps API: wie man Abstand von einer Position zu einer Postleitzahl berechnet?

Ich stelle einen google Diagramme Widget für eine Web site her. Der Benutzer gibt eine Postleitzahl ein und einige Positionen in der Nähe dieser Postleitzahl werden auf der map.

I Notwendigkeit, anzuzeigen grafisch dargestellt, wie weit jede Position von der eingegebenen Postleitzahl ist (viele sind in benachbarten Postleitzahlen).

I haben das lange/die Breite jeder Position aber des morgens nicht sure, wie man den Abstand zu einem REISSVERSCHLUSS berechnet. Irgendwelche Ideen? das

I morgens es annehmend erfordert diese API-Methode, aber ich kann die Syntax nicht ausarbeiten: „distanceFrom "
http://code.google.com/api s/maps/documentation/javascript/v2/reference.html#GLatLng.distanceFrom

Antwort : Google Maps API: wie man Abstand von einer Position zu einer Postleitzahl berechnet?

Eine Postleitzahl ist nicht eine Position, es ist der Weg einer Postfördermaschine.  In den Städte der östlichen USA kann es Postleitzahlen, die, sehr klein sind, einige Gebäude geben in Manhattan.  In den großen Zustandn des Westens, können Postleitzahlen viele, viele Meilen breit sein.

Diagrammkoordinaten gegeben durch das „geocode“, das ein Breite-/Längepaar ist.  Die Daten ausgedrückt immer in einer Zeichenfolge mit zwei unterzeichnet oder den nicht unterzeichneten dezimalen Zahlen, die durch ein Komma getrennt t.  Der Abstand zwischen zwei „geocodes“ kann, während die Krähe fliegt, unter Anwendung von der Haversine Formel berechnet werden.
http://en.wikipedia.org/wiki/Haversine_formula

Während ein Weg des großen Kreises der genaueste A-Babstand ist, kann seine „Genauigkeit“ möglicherweise nicht was genau sein, Sie wünschen.  Kurz ist Abstände über unserer Masse, Planimetrie genug genau.
http://en.wikipedia.org/wiki/Cartesian_coordinate_system

Der andere Bestandteil der Genauigkeit des großen Kreises geht zum Modus des Transportes.  Es ist für Flugzeuge und ocean-going Behälter in hohem Grade nützlich.  Aber, wenn Ihre A-Bspielräume durch Automobil sind und Sie müssen einen Fluss kreuzen, z.B. erwartet die Haversine Formel Sie, über den Fluss gerade zu gehen, ob es eine Brücke oder nicht gibt.

In meiner Erfahrung mit Haversine Berechnungen und Google Maps, gefunden ich, dass Sie einen angemessenen Näherungswert des richtigen treibenden Abstandes erhalten können, indem Sie den Haversine Abstand bis zum 1.15 bis 1.25 multiplizieren.  Durch angemessenes bedeute ich, „niemand beschwerte“ über die Fehlermarge.  Kurz sind Reisen, die Berechnung weniger genau und der Fudgefaktor muss zur oberen Grenze neigen.  Für längere Reisen ist die Berechnung genauer und der Fudgefaktor kann verringert werden.

Das „zutreffende“, Abstand fahrend, festgestellt e, indem man eine Reihe „minitrips“ eins für jeden Drehenpunkt entlang dem Weg auswertet.  Google Maps kann dies tun.  IIRC dort ist ein API-Anruf, der diese Daten zurückbringt.

Das eben freigegebene Google Maps API hat einige erstaunlich robuste Eigenschaften.   Z.B. war es „zum geocode“ eine Adresse notwendig, bevor man einen Druckbolzen dem Diagramm hinzufügte - jetzt können Sie die Adresse einfach geben, oder der Name der Position („das Weiße Haus“) und Google Maps in der Lage sind häufig, den Namen und/oder die Adresse in das geolocation für Sie zu übersetzen.  Ich habe einen Artikel hier in EE, die einige der neuen Eigenschaften umfaßt.
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_3350-Using-the-Google-Maps-API-in-PHP.html

Das Code-Stückchen unterrichtet die Weise, große Kreisabstände zu berechnen.

Google und Yahoo Geocoders zurückbringen ein geocode coders, wenn Sie ihnen nichts aber eine Postleitzahl geben, gleichwohl die Genauigkeit nicht ganz große die ist.  Der Yahoo Geocoder ist das einfachste zu verwenden.
http://developer.yahoo.com/maps/rest/V1/geocode.html

Hoffen, dass dieses Info Sie behilflich ist.  Bitte zurück bekannt geben, wenn Sie irgendwelche Fragen haben.  Bester Respekt, ~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:
6:
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
Das Weiße Haus
ES HIER PRÜFEN:

EINEN LAT ZEIGEN   LON  
BLAT ZEIGEN   LON  
Meilen
Kilometer


Weitere Lösungen  
 
programming4us programming4us