java: PLZ GEO QuickHull SVG

flybyray

Vice Admiral Special
Mitglied seit
06.06.2008
Beiträge
509
Renomée
9
Standort
München
Ich möchte gern folgendes lösen und habe auch schon einen Ansatz.
Nur würde ich gern mal nachfragen ob es vielleicht schon sinnvolle andere Lösungen gibt.

Ich habe in einer Excel Tabelle Postleitzahlen und Ortsnamen bekommen die bestimmten Bezirken zugeteilt sind. Es gibt also 3 Hauptspalten (PLZ,Name,Bezirknummer).

Aufgabe: Es soll für jeden Bezirk der Rand (also eine Hülle um die Menge der PLZ) herausgefunden werden ("Randgebiete eines Bezirks").

Ich denke mir nun es wäre sinnvoll die Daten Grafisch aufzubereiten, also auf einer 2D Karte.

Dabei habe ich mir folgendes vorgestellt.
Zunächst hole ich mittels PostalCodeSearch von GeoNames.org Lat und Long für die PLZ in der Excel Datei. Die Excel Datei lese ich dabei mit Apache POI Api aus. Ich schreibe für jeden Bezirk eine eigene Datei (evtl. Excel ebenfalls mit POI Api) mit den Koordinaten weg.
Nun muss ich für jede erstellte Datei einen Hüllenalgorithmus (vermutlich QuickHull) anwenden und mir die Randgebiete ermitteln. Ich erhalte somit einen Pfad.

Nun möchte ich die Pfade aller Gebiete in eine SVG Grafik Zeichnen und evtl. auch die Eckpunkte beschriften. Dazu würde ich wohl das Batik SVG Toolkit verwenden.

Naja mal sehen ob hier noch weitere nützliche Tips zusammen kommen. Vielleicht gibt es ja auch schon freie Software für so etwas.
 
Nun möchte ich die Pfade aller Gebiete in eine SVG Grafik Zeichnen und evtl. auch die Eckpunkte beschriften. Dazu würde ich wohl das Batik SVG Toolkit verwenden.
Batik kenne ich nicht, aber was bietet das jetzt eigentlich auf API-Ebene? *noahnung*

Ein svg-Dokument mit *.jpg als Hintergrund, in einem bestimmten Maßstab, mit Schrift, Grafik, meinetwegen auch mit Polygonen beliebiger Farbe hat man auch mit xerces ziemlich schnell programmiert. ;)
 
hm ja am liebsten ist mir halt einfach alles mit einer programmiersprache durchzuziehen nicht so ein frickelwerk. da ist xerces ja ungeeignet (basierend auf c++). die meisten der api´s basieren auf java also werd ich da wohl auch bleiben. hab da schon einiges zusammengebastelt.
svg sind skaliebare vektor grafiken, das hat den vorteil ich kann hier ganz einfach die geo koordinaten als bezugspunkte reinklatschen (ohne viel berechnung) und kann das nachträglich beliebig skalieren.
 
hm ja am liebsten ist mir halt einfach alles mit einer programmiersprache durchzuziehen nicht so ein frickelwerk. da ist xerces ja ungeeignet (basierend auf c++).
Nö: http://xerces.apache.org/xerces-j/

Ist ja gerade der Vorteil von xerces, dass es Java und C++ unterstützt. Allerdinngs kenne ich nur die C++-Seite und die Java-Seite aus der Literatur. ;)

Mein Betrag war nicht als Stichelei gedacht, nenne doch mal etwas, was Batic wirklich leistet. Die Frage ist, ob da mehr übrig bleibt als "integer zu ascii convertieren".
 
Nö: http://xerces.apache.org/xerces-j/

Ist ja gerade der Vorteil von xerces, dass es Java und C++ unterstützt. Allerdinngs kenne ich nur die C++-Seite und die Java-Seite aus der Literatur. ;)
Ah das Xerces-J habe ich nicht gesehen. Klar das ist auf jedenfall ein Vorteil mit C++ und Java unterstützung. Aber ehrlich gesagt fehlt mir da auch irgendwo in der Dokumentation der Bezug zu dem Einsatz den ich mir vorstelle.


Mein Betrag war nicht als Stichelei gedacht, nenne doch mal etwas, was Batic wirklich leistet. Die Frage ist, ob da mehr übrig bleibt als "integer zu ascii convertieren".
Ist bei mir auch nicht so angekommen. Bin ja dankbar wenn ich so noch was anderes kennenlernen könnte. Aber ehrlich mir scheint das xerces irgendwie komplizierter.
Was leistet Batik? Das weiß ich auch noch nicht so, aber jedenfalls werde ich wohl diesen Batik SVG-Generator verwenden.
Bei Xerces seh ich in den vielen Apis nur was von XML (Blabla). Aber wie ich daraus was brauchbares generiere kann ich nicht so leicht erkennen wie bei Batik. Vielleicht könntest du mir da mal nen Schubser in die richtige Richtung geben. Welches dieser Beispiele von Xerces-J leistet denn irgendwas vergleichbares wie der SVG-Generator? Und in wie fern schneller und einfacher?
 
Zuletzt bearbeitet:
Prinzipiell erzeugt man mit xerces (beim Schreiben) einfach einen DOM-Tree. Da in den kommenden 10 Jahren bei der Jobsuche solche Kenntnisse essentiell sind, erübrigen sich Motivationsfragen. ;)

So läßt sich auch eine svg-datei erzeugen.

Meist braucht man ja in der Applikation nur ca. 10 Schlüsselwörter für svg-items, der Code bekommt mit diesen Strings sicher keinen Schönheitspreis, aber länger als 10 Jahre muss er ja auch nicht halten.

Z,B. ein Polygon wird so definiert:
<polygon class="MyIdentifier" fill="none" points="1380,95 ...

Warum soll man jetzt den Gebrauch eines Frameworks lernen, wenn man auch gleich SVG lernen kann? *noahnung*
 
Warum soll man jetzt den Gebrauch eines Frameworks lernen, wenn man auch gleich SVG lernen kann? *noahnung*
Also für mich ist die API von Batik sehr intuitiv zu begreifen, da würde ich noch nicht einmal von lernen sprechen wollen. Aber ich verstehe was du mit der Frage "was leistet das" eigentlich wolltest ;D .
Klar ein Polygon ist wirklich kein großes Ding und kann tatsächlich so einfach erstellt werden. Wahrscheinlich mach ich das auch so einfach. ;D

PS: Ja ich merke schon ich neige dazu einfach mal tausend Bibliotheken und Abhängikeiten zu erzeugen. Sollte ich vielleicht bisserl aufpassen.
 
Zuletzt bearbeitet:
Zurück
Oben Unten