Vraag : Google Maps API: hoe te om afstand van een plaats aan een Postcode te berekenen?

Ik cre�ër een google in kaart breng widget voor een website. De gebruiker gaat een Postcode in en een aantal plaatsen in de buurt van die Postcode worden op de/>I behoefte map.


I heeft lang/de breedte elke plaats maar ben niet zeker hoe te om de afstand aan een PIT te berekenen. Om het even welke ideeën?

I am het deze API methode veronderstellen zal vereisen maar ik kan niet de syntaxis uitwerken: „distanceFrom "
http://code.google.com/api s/maps/documentation/javascript/v2/reference.html#GLatLng.distanceFrom

Antwoord : Google Maps API: hoe te om afstand van een plaats aan een Postcode te berekenen?

Een postcode is geen plaats, is het de route van een postdrager.  In de steden van de oostelijke V.S. kunnen er Postcodes zijn die, een paar gebouwen in Manhattan zeer klein zijn.  In de grote staten van het westen, kunnen de Postcodes zijn velen, vele brede mijlen.

De coördinaten van de kaart worden gegeven door „geocode“ die een breedte/lengtepaar is.  Het gegeven wordt altijd in een karakterkoord met twee ondertekende of niet ondertekende decimale die aantallen uitgedrukt door een komma worden gescheiden.  De afstand tussen twee „geocodes“ kan, als kraaivliegen, door het gebruik van de formule worden gegevens verwerkt Haversine.
http://en.wikipedia.org/wiki/Haversine_formula

Terwijl een Grote route van de Cirkel de nauwkeurigste afstand van ab is, kan zijn „nauwkeurigheid“ niet zijn precies wat u wilt.  Voor korte afstanden over onze aarde, is de vliegtuigmeetkunde voldoende nauwkeurig.
http://en.wikipedia.org/wiki/Cartesian_coordinate_system

De andere component van de Grote nauwkeurigheid van de Cirkel gaat naar de wijze van vervoer.  Het is hoogst nuttig voor vliegtuigen en zee- schepen.  Maar als uw reizen van ab door auto zijn en u een rivier moet kruisen, bijvoorbeeld, verwacht dat de formule Haversine u gaan rechtstreeks over de rivier of er of niet een brug is.

In mijn ervaring met berekeningen Haversine en Google Maps, heb ik geconstateerd dat u een redelijke benadering van de correcte drijfafstand kunt krijgen door de afstand Haversine met 1.15 tot 1.25 te vermenigvuldigen.  Door redelijk, beteken ik, „niemand klaagde“ over de foutenmarge.  Voor korte reizen, zijn de berekeningen minder nauwkeurig en de zachte toffeefactor moet aan het hoge eind neigen.  Voor langere reizen zijn de berekeningen nauwkeuriger en de zachte toffeefactor kan worden verminderd.

De „ware“ drijfafstand wordt bepaald door een reeks „minitrips“ te evalueren voor elk draai-punt langs de route.  Google Maps kan dit doen.  IIRC er is een API vraag die dit gegeven zal terugkeren.

Onlangs vrijgegeven Google Maps API heeft sommige ongelooflijk robuuste eigenschappen.   Bijvoorbeeld, was het noodzakelijk voor „geocode“ een adres alvorens een punaise aan de kaart toe te voegen - nu kunt u het adres of de naam van de plaats (het „Witte Huis“) eenvoudig geven en Google Maps zal vaak de naam en/of het adres in geolocation voor u kunnen vertalen.  Ik heb hier een artikel bij EE dat enkele nieuwe eigenschappen behandelt.
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_3350-Using-the-Google-Maps-API-in-PHP.html

Het codefragment onderwijst de manier om de Grote afstanden van de Cirkel gegevens te verwerken.

Google en Yahoo Geocoders zullen een geocode terugkeren als u hen niets dan een postcode geeft, nochtans is de nauwkeurigheid niet groot dat alles.  Yahoo Geocoder is het gemakkelijkst te gebruiken.
http://developer.yahoo.com/maps/rest/V1/geocode.html

Hoop deze info aan u nuttig is.  Gelieve te posten terug als u om het even welke vragen hebt.  Vriendelijke groeten, ~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"];
}
?>


Kamp David
Witte Huis
TEST HET HIER:

RICHT EEN LAT   LON  
RICHT B LAT   LON  
Mijlen
Kilometers


Andere oplossingen  
 
programming4us programming4us