2010-05-18 6 views

Répondre

10

Voici les documents de l'API Google Maps. Il contient une table avec des valeurs de précision ...

http://code.google.com/apis/maps/documentation/reference.html#GGeoAddressAccuracy

Constant | Description
0 Emplacement inconnu.
1 Précision au niveau du pays.
2 Précision au niveau de la région (état, province, préfecture, etc.).
3 Précision au niveau de la sous-région (comté, municipalité, etc.).
4 Précision au niveau de la ville (village, village).
5 Précision du niveau du code postal.
6 Précision au niveau de la rue.
7 Précision du niveau d'intersection.
8 Précision au niveau de l'adresse.
9 Précision du niveau des locaux (nom du bâtiment, nom de la propriété, centre commercial, etc.).

+1

J'étais sûr que je le voyais ... la vieille histoire de l'arbre et de la forêt. Je vous remercie! –

+0

@Pekka: Ha np, ces choses arrivent, beaucoup dans notre industrie :). –

+0

On dirait que le lien n'est plus valide. Merci beaucoup de copier les valeurs! – stellasia

2

@Pekka

Je ne sais pas si vous avez vu, mais V3 ne comprend pas plus de précision. Il semble qu'il y ait une manière différente cependant. Si vous ajoutez les résultats des éléments address_component, vous obtenez un résultat similaire. Avertissement: Je ne suis pas sûr à 100% à ce sujet, mais il semble qu'ils incluaient la précision de cette façon. Je fais actuellement des tests, c'est la voie à suivre.

Voici un exemple:

Je recherchais: 555 Pearl Street, Boulder

Voici le résultat avec précision Adresse niveau (8 niveaux de profondeur).

 [address_component] => Array 
      (
       [0] => SimpleXMLElement Object 
        (
         [long_name] => 555 
         [short_name] => 555 
         [type] => street_number 
        ) 

       [1] => SimpleXMLElement Object 
        (
         [long_name] => Pearl St 
         [short_name] => Pearl St 
         [type] => route 
        ) 

       [2] => SimpleXMLElement Object 
        (
         [long_name] => Boulder 
         [short_name] => Boulder 
         [type] => Array 
          (
           [0] => locality 
           [1] => political 
          ) 

        ) 

       [3] => SimpleXMLElement Object 
        (
         [long_name] => Boulder 
         [short_name] => Boulder 
         [type] => Array 
          (
           [0] => administrative_area_level_3 
           [1] => political 
          ) 

        ) 

       [4] => SimpleXMLElement Object 
        (
         [long_name] => Boulder 
         [short_name] => Boulder 
         [type] => Array 
          (
           [0] => administrative_area_level_2 
           [1] => political 
          ) 

        ) 

       [5] => SimpleXMLElement Object 
        (
         [long_name] => Colorado 
         [short_name] => CO 
         [type] => Array 
          (
           [0] => administrative_area_level_1 
           [1] => political 
          ) 

        ) 

       [6] => SimpleXMLElement Object 
        (
         [long_name] => United States 
         [short_name] => US 
         [type] => Array 
          (
           [0] => country 
           [1] => political 
          ) 

        ) 

       [7] => SimpleXMLElement Object 
        (
         [long_name] => 80302 
         [short_name] => 80302 
         [type] => postal_code 
        ) 

      ) 
+1

À la vôtre @Paedda. J'ai remarqué que 'précision 'est allé en V3. Il semble avoir été remplacé par une nouvelle valeur dans la section 'geometrics' (ou quoi que ce soit appelé, une branche différente dans la même sortie XML, je n'ai pas les données à portée de main) disant' ROOFTOP' quand l'adresse est parfaitement encodé, et une gamme d'autres valeurs quand ce n'est pas exact, et les composants d'adresse que vous citez. –

+0

Ouais c'est le membre 'location_type' de la section geometry. –

1

Voici les véritables réponses d'état de geocoder:

Vous pouvez sortir le status dans votre fonction de géocodage:

myMap.geocoder.geocode( 
    { address: someAdress }), 
    function (responses, status) { 
     console.log(status); 
    } 
); 

Lors du passage du status, vous pouvez passer ces quatre valeurs :

switch (status) 
    { 
     case 'ROOFTOP' : 
      var precision = 'precise'; 
      break; 
     case 'RANGE_INTERPOLATED' : 
      var precision = 'interpolated'; 
      break; 
     case 'APPROXIMATE' : 
      var precision = 'approximately'; 
      break; 
     case 'ZERO_RESULTS' : 
      var precision = 'no address'; 
      break; 
    } 
+0

Est-ce basé sur la version 3? –

+0

@Y_Y Oui, c'est le cas. – kaiser

+1

Je vois., Pour une raison quelconque, j'ai pensé ROOFTOP, RANGE_INTERPOLATED, APPROXIMATE, et * ZERO_RESULTS * faisaient partie de la location_type retourné par les résultats ou (à partir de votre code) réponses.? Sont-ils également inclus dans le champ de statut? –