xml

XML-Ecke

Struktur in den Content!

Google vereinfacht Geocoding-Service

Rund zehn Monate nach der Einführung von Version 3 (V3) der Google Maps API hat Google auch seinen Geocoding-Service vereinfacht, der Postadressen oder Ortsangaben in Geodaten umwandelt. Auch hier ist jetzt kein besonderer Key für die Nutzung des Dienstes mehr erforderlich. Es genügt die Anforderung beim Webservice nach dem Schema:

http://maps.google.com/maps/api/geocode/output?parameters

Der Platzhalter “output” wird ersetzt durch Angaben zum gewünschten Ausgabeformat, wobei XML oder das schlanke JSON zur Verfügung stehen. Statt “parameters” wird die gewünschte Adresse angegeben, also zum Beispiel:

http://maps.google.com/maps/api/geocode/xml?address=Weifert-Janz-Straße+1+Mainz&sensor=false

Der erforderliche Parameter “sensor” gibt an, ob die Anfrage von einem Gerät mit der Erfassung von Geodaten kommt oder nicht. Optional kann mit dem Parameter “region” die geografische Region eingegrenzt werden, was etwa bei Orten sinnvoll ist, die es in mehreren Ländern gibt. Ohne diese Differenzierung zeigt der Geocoder zum Beispiel bei der Abfrage von Toledo den im US-Staat Ohio gelegenen Ort an. Erst die Präzisierung mit “region=es” sucht nach der spanischen Stadt. Für die Bezeichnung der Region werden die Länder-Codes der Top-Level-Domains (ccTLD) verwendet, also etwa “de” für Deutschland.
Das Ergebnis der Abfrage im JSON-Format führt alle bekannten Informationen auf, darunter auch die Geodaten der geografischen Länge und Breite:

{
  "status": "OK",
  "results": [ {
    "types": [ "street_address" ],
    "formatted_address": "Weifert-Janz-Straße 1, 55122 Mainz, Deutschland",
    "address_components": [ {
      "long_name": "1",
      "short_name": "1",
      "types": [ "street_number" ]
    }, {
      "long_name": "Weifert-Janz-Straße",
      "short_name": "Weifert-Janz-Straße",
      "types": [ "route" ]
    }, {
      "long_name": "Mainz",
      "short_name": "Mainz",
      "types": [ "locality", "political" ]
    }, {
      "long_name": "Mainz",
      "short_name": "MZ",
      "types": [ "administrative_area_level_2", "political" ]
    }, {
      "long_name": "Rheinland-Pfalz",
      "short_name": "RP",
      "types": [ "administrative_area_level_1", "political" ]
    }, {
      "long_name": "Deutschland",
      "short_name": "DE",
      "types": [ "country", "political" ]
    }, {
      "long_name": "55122",
      "short_name": "55122",
      "types": [ "postal_code" ]
    } ],
    "geometry": {
      "location": {
        "lat": 50.0042904,
        "lng": 8.2410587
      },
      "location_type": "RANGE_INTERPOLATED",
      "viewport": {
        "southwest": {
          "lat": 50.0011490,
          "lng": 8.2379114
        },
        "northeast": {
          "lat": 50.0074443,
          "lng": 8.2442067
        }
      },
      "bounds": {
        "southwest": {
          "lat": 50.0042904,
          "lng": 8.2410587
        },
        "northeast": {
          "lat": 50.0043029,
          "lng": 8.2410594
        }
      }
    }
  } ]
}

Die JSON-Elemente lassen sich nun mit wenigen Codezeilen als Javascript-Variablen definieren und für Kartendarstellungen verwenden – zum Beispiel:

?View Code JAVASCRIPT
var latitude = myJSONResult.results.location.lat;
var longitude = myJSONResults.location.lng;

Dabei verlangt Google in seinen Nutzungsbestimmungen, dass nur Karten auf der Grundlage seiner eigenen APIs für Google Maps oder Google Earth verwendet werden dürfen. Neben der Auflösung von Adressen wird auch das Reverse Geocoding unterstützt, also die Umwandlung von Geodaten mit den Angaben der geografischen Breiten- und Längengrade in Adressen. Für das oben gezeigte Beispiel funktioniert dies etwa auf diese Weise:

http://maps.google.com/maps/api/geocode/json?latlng=50.0042904,8.2410587&sensor=false

Die Website zur Web App schrumpfen

Anwendungen fürs mobile Web lassen sich immer einfacher entwickeln. Was vor ein paar Jahren noch mit aufwendiger Programmierarbeit verbunden war, lässt sich inzwischen mit wenigen Standard-Zutaten wie HTML, JavaScript und CSS erledigen. Noch einfacher wird die Entwicklung von Web Apps mit Hilfe von “Frameworks” – das sind Sammlungen von vorgefertigten Code-Bausteinen, die sich zu eigenen [...]

weiterlesen »

XFN vernetzt Google Buzz in alle Richtungen

Vor sechs Jahren war XFN, das XHTML Friends Network, das erste Mikroformat, das die schlichte Struktur von HTML um ein bisschen Semantik bereichert hat: Mit dem Attribut “rel” (relationship) sollte die persönliche Beziehung eines Web-Anbieters zu einer verlinkten Site deutlich gemacht werden. Blogger organisieren so ihre Blogroll – in WordPress wird XFN von vornherein unterstützt. [...]

weiterlesen »


hNews als Nachrichtenformat für semantische Web

Die bestehenden XML-Formate für Nachrichten – NewsML und NITF – haben sich für viele Zwecke bewährt. Sie ermöglichen es, den Content von Nachrichtenagenturen auf verschiedenen Plattformen zu nutzen, von Print bis zum Web. Beide Formate erleichtern das Management von Nachrichten; dazu gehört etwa das automatisierte Ersetzen von Inhalten eines News-Portals oder das Verknüpfen zusammengehörender Inhalte. [...]

weiterlesen »

XML verpackt Gadgets für Google Wave

Wenn es um Datenaustausch im Netz geht, kommt XML ins Spiel – auch bei Kommunikation und Kooperation mit Google Wave. Tatsächlich handelt es sich bei den Waves um nichts anderes als XML-Dokumente, die auf einem Server abgelegt und aktualisiert werden. Der Nutzer bekommt davon nicht viel mit – die Verwaltung der Dokumente findet in der [...]

weiterlesen »


eXist bringt XML-Daten zum Tanzen

Viele Datenbank-Programme können XML-Dokumente “mappen”, das heißt in ihre eigene Struktur übertragen und so für Abfragen aufbereiten. Bei “nativen” XML-Datenbanken entfällt diese Umwandlung, sie werden denn auch nicht wie relationale Datenbanken mit SQL bedient, sondern mit XML-Werkzeugen wie dem Standard XQuery. Eine besonders interessante XML-Datenbank ist das Open-Source-Projekt eXist, in der jetzt vorgelegten Version 1.4 [...]

weiterlesen »

Altova XMLSpy als Mac-Anwendung :-)

Bislang gibt es viele interessante XML-Anwendungen wie den XMLSpy von Altova nur für Windows. Die neue Version von Parallels Desktop für Mac bringt diese Programme nun direkt auf den Mac – und verpasst ihnen sogar das Mac-typische Aussehen mit dem roten, gelben und grünen Knopf in der Fensterecke links oben. Möglich macht dies der neue [...]

weiterlesen »



Copyright © 2010 by: XML-Ecke - Lizenz: Creative Commons BY-NC-SA.