Question : Google Maps api : comment calculer la distance d'un endroit à un code postal ?

Je crée un gadget de cartes de google pour un site Web. L'utilisateur écrit un code postal et un certain nombre d'endroits à proximité de ce code postal sont tracés sur la nécessité de map.

I d'indiquer qu'à quelle distance chaque endroit est du code postal écrit (beaucoup seront en codes postaux voisins). le

I ont le long/latitude de chaque endroit mais d'AM pas sure comment calculer la distance à une FERMETURE ÉCLAIR. Des idées ? le

I AM l'assumant exigera cette méthode d'api mais je ne peux pas établir la syntaxe : rel= " nofollow " de » _blank » de target= de " http://code.google.com/apis/maps/documentation/javascript/v2/reference.html#GLatLng.distanceFrom » de href= du
s/maps/documentation/javascript/v2/reference.html#GLatLng.distanceFrom
de http://code.google.com/api class= de

Réponse : Google Maps api : comment calculer la distance d'un endroit à un code postal ?

Un code postal n'est pas un endroit, il est l'itinéraire d'un porteur postal.  Dans les villes des Etats-Unis orientaux il peut y avoir les codes postaux qui sont très petits, quelques bâtiments à Manhattan.  Dans les grands états de l'ouest, les codes postaux peuvent être beaucoup, beaucoup de milles de large.

Des coordonnées de carte sont données par le « geocode » qui est une paire de latitude/longitude.  Les données sont toujours exprimées en chaîne de caractères avec deux signés ou nombres décimaux non signés séparés par une virgule.  La distance entre deux « geocodes » peut être calculée, pendant que la corneille vole, en employant la formule de Haversine.
http://en.wikipedia.org/wiki/Haversine_formula

Tandis qu'une route orthodromique est la distance d'A-B la plus précise, ne pas être exactement son « exactitude » peut ce que vous voulez.  Pour des distances courtes à travers notre terre, la géométrie plane est suffisamment précise.
http://en.wikipedia.org/wiki/Cartesian_coordinate_system

L'autre composant de l'exactitude de grand cercle va au mode du transport.  Il est fortement utile pour des avions et des navires de haute mer.  Mais si vos voyages d'A-B sont en l'automobile et vous devez traverser un fleuve, par exemple, la formule de Haversine s'attend à ce que vous alliez directement à travers le fleuve, qu'il y ait un pont ou pas.

Dans mon expérience avec les calculs et le Google Maps de Haversine, j'ai constaté que vous pouvez obtenir une approximation raisonnable de la distance motrice correcte en multipliant la distance de Haversine d'ici 1.15 à 1.25.  Par raisonnable, je veux dire, « personne me suis plaint » au sujet de la marge de l'erreur.  Pour des voyages courts, les calculs sont moins précis et le facteur de fondant doit tendre à l'à extrémité élevé.  Pour de plus longs voyages les calculs sont plus précis et le facteur de fondant peut être réduit.

Le « vrai » conduisant la distance est déterminé en évaluant une série de « minitrips » un pour chaque tourner-point le long de l'itinéraire.  Google Maps peut faire ceci.  IIRC il y a un appel d'api qui renverra ces données.

Google Maps nouvellement libéré api a quelques dispositifs étonnamment robustes.   Par exemple, il était nécessaire du « geocode » une adresse avant d'ajouter une punaise à la carte - maintenant vous pouvez simplement donner l'adresse ou le nom de l'endroit (« la Maison Blanche ») et Google Maps pourront souvent traduire le nom et/ou l'adresse en geolocation pour vous.  J'ai un article ici à l'EE qui couvre certains des nouveaux dispositifs.
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_3350-Using-the-Google-Maps-API-in-PHP.html

L'extrait de code enseigne la manière de calculer de grandes distances de cercle.

Google et Yahoo Geocoders renverront un geocode si vous ne leur donnez rien mais un code postal, toutefois l'exactitude n'est pas tout celle grande.  Il est le plus facile employer le Yahoo Geocoder.
http://developer.yahoo.com/maps/rest/V1/geocode.html

Espérer que cette information t'est utile.  Signaler svp en arrière si vous avez n'importe quelles questions.  Les souvenirs, ~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 Maison Blanche 
L'EXAMINER ICI :

DIRIGER UN LAT   LON  
DIRIGER LE LAT DE B   LON  
Milles
Kilomètres


Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us