Sophie: Google Maps API V3 Zugriff auf Geolocation - Areas

Hallo,

ich arbeite gerade zum ersten mal mit der Google API zur Geolocation. Ziel ist also die Eingabe eines Ortes und die Ausgabe der Koordinaten und der Politischen Regionen.

Beispiel:
http://maps.googleapis.com/maps/api/geocode/xml?address=Hoetmar+deutschland&sensor=false

Hier gibt es
<type>sublocality</type> <- Ortsnamen
<type>locality</type> <- Kreis ?
<type>administrative_area_level_2</type> <- Regierungsbezirk
<type>administrative_area_level_1</type> <- Bundesland

Damit es einfacher ist, nutzte ich eine PHP Class auf SimpleXML Basis:
http://nooclear.com/content/google-maps-v3-geocoder-php-class

$coder = new Geocoder();  
$coder->address = 'Hoetmar,Deutschland';  
$xml = $coder->get();  
  
//Geocoding  
print $xml->result->geometry->location->lat;  
echo '<br />';  
print $xml->result->geometry->location->lng;  
echo '<br />';  
print $xml->result->address_component->long_name;  
echo '<br />';  
print $xml->result->address_component->long_name;

Wie kann ich nun auf die verschiedenen Areas zugreifen?

print $xml->result->address_component->long_name;

Liefert nur Hoetmar nicht aber die anderen Areas. Habt Ihr da vielleicht eine Idee?

  1. Tach!

    Wie kann ich nun auf die verschiedenen Areas zugreifen?
    print $xml->result->address_component->long_name;
    Liefert nur Hoetmar nicht aber die anderen Areas. Habt Ihr da vielleicht eine Idee?

    address_component kommt mehrfach vor. Wie legt man im allgemeinen mehrere gleichartige Dinge in PHP ab? In Arrays. Und so simuliert auch SimpleXML einen Array-Zugriff. Sprich also address_component so an, als wäre es ein Array.

    dedlfix.

    1. Hallo Dedlfix,

      vielen Dank für die Antwort.
      $xml->result->address_component[XX]
      klappt super.

      Jetzt nur noch die Frage, wie zähle ich die Anzahl an address_component ?

      Ein einfaches Count funktioniert hier ja nicht.

      1. Tach!

        Jetzt nur noch die Frage, wie zähle ich die Anzahl an address_component ?
        Ein einfaches Count funktioniert hier ja nicht.

        Wirklich nicht? Zumindest gibt es die count()-Methode. Ansonsten geh mit foreach drüber. Die Anzahl interessiert doch nicht wirklich ...

        dedlfix.