Projekt: XMLKonverter

nambrot

Neuling
Thread Starter
Mitglied seit
06.12.2006
Beiträge
135
Hi
ich habe ein kleines Projekt vor.
Ich möchte aus dem openstreetmap.org Projekt die Straßen mit ihrer POsition extrahieren.
VOn OSM gibt es dazu eine Datenbank die in einem XML artigen Format ist.
Sie besteht vorallem aus 2 Teilen:
Den Nodes. Eindeutigen Punkten in der WElt mit Breiten und Längen Angaben.
Und den Ways, den Obejkten die durch die Nodes als Umrisse beschrieben werden
Ca so:
NOdes:
Code:
<node id="172540" timestamp="2006-12-09T15:47:27Z" user="dotslash" lat="52.5647578" lon="13.336325"/>
  <node id="172541" timestamp="2007-04-30T22:17:32Z" user="Elwood" lat="52.565527" lon="13.3362226">
Ways:
Code:
<way id="4402491" timestamp="2007-03-31T00:36:18Z" user="B10xxx">
    <nd ref="26917801"/>
    <nd ref="26917802"/>
    <nd ref="26917803"/>
    <nd ref="26917794"/>
    <tag k="created_by" v="YahooApplet 1.0"/>
    <tag k="name" v="Harnackstrasse"/>
    <tag k="highway" v="residential"/>
  </way>
Also die Straßen sind Ways mit Highway getaggt.
Ich möchte also jeden Straße haben,also einen Punkt davon mit Breiten und Längenangabe.
Also in dieser Form:
Code:
<Placemark>

      <name>Obiger Name(Hartnackstraße)</name>

             <Point>

         <coordinates>lon,lat</coordinates>

       </Point>

  </Placemark>

damit man das einfacher handlen kann.
Kann mir jemand bei dem Projekt helfen?
Ist diese Umsetzung in Java möglich, weil in Java kann ich noch halbwegs programmieren.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Das kann man mit java machen. Es gibt jede Menge XML Parser für Java
http://www.cafeconleche.org/books/xmljava/

OpenStreetmap sieht mir irgendwie nach einem Streamformat aus...Ich würde daher mich erstmal mit einem SAX Parser beschäftigen. Ein DOM Parser kannman eigentlich nur nehmen, wenn man ganz genau weiss das die Dateien nicht zu groß werden. Dann gibts noch XPath und XSLT...davon hab ich keine Ahnung ;) Musst dich belesen...


Wieso willst du das denn in ein anderes XML Format bringen? Das OSM Format sieht mir nicht zu komplex aus...auswerten musst du es in jedem Fall, du willst ja schliesslich ein anderes XML draus machen. Und wenn man sich schon die Arbeit macht, das XML korrekt auszulesen, dann kann mans auch gleich verarbeiten.
 
hi
danke für die antwort,
also .osm ist schon ein XML format wie ich oben gesagt habe, ich weiß zwar nicht was ein streamformat ist.
ich glaube aber ich nehme den XLST Weg, der hört sich ganz vernpnftig an.
Und was meintest du mit, warum in ein anderes XML format bringen.
Ich denke das ist notwendig, wenn ich es für meine Zwecke in einem anderen Format brauche oder nicht?
 
Den Parser wählt man meist nach Anwendungszweck aus. Ein DOM Parser liestden XML Baum erst komplett in den Speicher ein, bevor man auf die Daten zugreifen kann. Bei großen und vielen XML Dateien, ist dadurch 1. der Speicher schnell voll und 2. dauert das initieren eine Weile. Dafür ist das Zugreifen auf die Daten im Nachhinein sehr viel schnell als mit anderen Lösungen..ausserdem kann man sicher sein, das man alle hat, und die Datei valide ist. Wenns um Geschwindigkeit geht, nehm ich daher in der Regel einen SAX Parser (Server Programmierung z.b.). Bei kleineren Daten, die lokal gespeichert/gelesen werden ist DOM besser. AFAIK sind aber xslt und xpath neuer. Firefox benutzt diese auch.
 
also ich hab schon ne sehr große XML datei: so ca.100 MB
diese möche ich eigentlich nur ein wenig mitXSLT umschreiben, muss eigentlich auch nicht schnell gehen.
Hauptsache es funzt.
Sollte doch mit XSLT gehen odeR?
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh