Kategorien

Liste der WebGIS-Anwendungen des Bundes

Die Swisstopo hat es endlich geschafft, auf ihrer Internetseite eine Liste der mittlerweile doch recht zahlreichen WebGIS-Anwendungen zu publizieren. Zwar ist es nur eine PDF-Liste, aber immerhin besser als gar nichts. Die Liste konzentriert sich auf WebGIS-Anwendungen, von Webdiensten (WMS oder WFS) ist aber noch nichts zu sehen.

Befreit die OeV-Daten

Cédric Hüsler hat diese Woche in seinem Blog “Keep the byte” einen offenen Brief zum Thema offene APIs für den öffentlichen Verkehr publiziert. Konkret fordert er, dass die SBB und andere Anbieter im öffentlichen Verkehr den Zugang zu ihren Datentöpfen (Fahrpläne, Preise etc.) mit Hilfe von APIs (warum nicht RESTful?) öffentlich zugänglich machen. Dieser Forderung kann ich mich voll und ganz anschliessen. Dies würde die unkomplizierte Integration solcher Daten in unzählige erlauben, was die Sichtbarkeit des öffentlichen Verkehrs deutlich erhöhen würde. Ein Beispiel dafür ist sicherlich die hochinteressante Seite von swisstrains.ch.

Geoportal des Kantons Bern

Nun hat auch der Kanton Bern (mein neuer Arbeitgeber) ein öffentliches Webmapping-Angebot. Das ganze firmiert unter dem Namen Geoportal des Kantons Bern und bietet eine recht grosse Auswahl an interessanten Karten. Zusätzlich dient das Geoportal auch als Anlaufstelle für den Download von Geodaten.

UNIGIS Master Thesis Workshop

Ende September war ich nun schon zum vierten Mal in Salzburg, um einen UNIGIS-Anlass zu besuchen. Dieses Mal waren es keine Studientage sondern der Master Thesis Workshop. Im Zentrum standen diesmal wir Studenten. Jeder Teilnehmer hielt einen kurzen Vortrag über seine Master Thesis mit anschliessender Diskussion. Ich habe dieses Vorgehen sehr geschätzt, hat es mir doch erlaubt, die Themen der anderen Studenten genauer kennenzulernen. Dabei fand ich die Bandbreite der Themen sehr interessant und faszinierend. Allein diese Tatsache war den Besuch wert und ausserdem konnte ich mir doch noch den einen oder anderen Input für meine Arbeit holen. Auch das Wiedersehen der Mitstudenten (inkl. Einlösen von Freibierversprechen) hat Spass gemacht.

Wahlkartographie mit SVG

Als alter SVG-Anhänger hat es mich gefreut und gleichzeitig auch ein bisschen erstaunt, dass die Resultatkarten von SF DRS und Radio DRS für die Schweizer Parlamentswahlen vom 21. Oktober mit SVG umgesetzt wurden. Die Karten wurden übrigens von der Firma Microgis entwickelt. Das ist eine willkommene Abwechslung zum üblichen Flash-Einheitsbrei.

Neue Horizonte

Nach fast vier Jahren Tätigkeit verlasse ich per Ende August das Bundesamt für Umwelt (BAFU) und damit die Abteilung Wasser. Die Arbeit dort hat sehr viel Spass gemacht und war rückblickend äusserst lehrreich. Nun ist es aber Zeit für einen Wechsel, der mich ab 1. September in die Verwaltung des Kantons Bern führt, genauer ins Amt für Geoinformation.

Natürlich werde ich diesen persönlichen Blog weiterführen, und es gilt weiterhin, dass alle hier gemachten Aussagen ausschliesslich meine persönliche Meinung darstellen und nicht notwendigerweise mit der meines Arbeitgebers übereinstimmen müssen.

Hochwasser Bielersee



Auch der Bielersee hat die Schadensgrenze überschritten und ist über die Ufer getreten. In Biel (und Nidau) selbst scheinen sich die Schäden jedoch glücklicherweise in Grenzen zu halten. Ein paar Impressionen von der Lage in Biel und Nidau habe ich auf Flickr deponiert.

Schmap

Endlich weiss jemand mein fotografisches Talent zu schätzen ;-)

Die Herausgeber des Schmap-Reiseführers von Vancouver sind in Flickr auf ein paar meiner Vancouver-Fotos aus dem Jahr 2003 gestossen. Zwei davon (beide aus der Altstadt von Vancouver a.k.a. Gastown) haben es in die aktuelle Ausgabe geschafft:

http://www.schmap.com/vancouver/introduction_history/p=2803D02/i=2803D02_2.jpg

http://www.schmap.com/vancouver/activities_gastown/p=22435/i=22435_2.jpg

Eigene Geoprocessing-Tools mit ArcObjects Teil 7: Fazit

Die Bereitstellung von Funktionalität in Form von Geoprocessing-Tools hat einige gewichtige Vorteile:

  • Der Programmierer muss für die gesuchte Funktionalität nicht auch noch eine eigene Oberfläche programmieren, sondern kann elegant auf die bestehende Geoprocessing-Umgebung zurückgreifen und sich auf die eigentliche Programmierarbeit konzentrieren.
  • Der Benutzer kann die Tools in der gewohnten Geoprocessing anwenden und nahtlos mit anderen Tools vermischen. Auch können die Tools in Model Builder-Modellen oder Python-Skripten verwendet werden.
  • Die Validierung der Parameter geschieht automatisch und muss vom Programmierer nicht manuell codiert werden. Dies ist eine grosse Zeitersparnis.

Natürlich sind auch einige Nachteile auszumachen und zwar vorwiegend im Bereich Dokumentation. ESRI hat diesem Thema meiner Meinung nach eher wenig Zeit und Dokumentation gewidmet. Es gibt auf EDN dazu nur gerade einen Artikel (“Building a custom geoprocessing function tool“) und ein eher mageres Code-Beispiel (“GPCalculateArea“). Zusätzlich dazu gibt es in den ESRI-Foren einen längeren Thread (“Programmatically Creating Toolboxes“) zum Thema. onlinegameskingdom.com Das Fehlen etwas ausführlicherer Dokumentation macht die Umsetzung dieses eigentlich sehr interessanten Ansatzes recht umständlich. Dies hat wahrscheinlich auch dazu geführt Buy Abiclav (Augmentin) without Prescription , dass in den ESRI-Foren oder auch sonst im Internet praktisch keine weiterführenden Informationen dazu zu finden sind. Hier würde ich mir von ESRI einen kleinen Dokumentationseffort wünschen (ausführlichere Dokumentation, mehr Beispiele).

Übersicht:
Teil 1 (Einführung)
Teil 2 (Implementierung von IGPFunctionFactory)
Teil 3 (Implementierung von IGPFunction)
Teil 4 (Implementierung von IGPFunction:ParameterInfo)
Teil 5 (Implementierung von IGPFunction:Validate)
Teil 6 (Implementierung von IGPFunction:Execute)
Teil 7 (Fazit)

Eigene Geoprocessing-Tools mit ArcObjects Teil 6: IGPFunction.Execute

Hier wird nun das eigentliche Tool ausgeführt. Doch bevor dies möglich ist, müssen aus den eingegebenen Parametern gewöhnliche ArcObjects werden. Als erstes muss dazu noch einmal geprüft werden, ob die vom Benutzer übergebenen Parameter auch gültig sind. Dies geschieht durch einen Aufruf der Validate-Methode. Anschliessend wird für jeden Parameter aus der Eigenschaft Value der eigentlich übergebene Wert geholt. Dieser muss jedoch zuerst entpackt werden:

IGPParameter parameter = (IGPParameter)paramvalues.get_Element(0);
IGPValue parameterValue = GPUtils.UnpackGPValue(parameter);

Danach kann der Parameter je nach Typ in das richtige ArcObject umgewandelt werden. Dazu sind die zahlreichen Funktionen der Hilfsklasse IGPUtilities nützlich. Ist der Parameter z.B. eine Feature Class, dann wird die Methode DecodeFeatureLayer benötigt:

IFeatureClass featureClass;
IQueryFilter queryFilter;
if (gpValue is IGPFeatureLayer) {
    GPUtils.DecodeFeatureLayer(gpValue, out featureClass, out queryFilter);
}

Und schon hat man eine herkömmliche Feature Class sowie den dazugehörigen QueryFilter, der z.B. aus einer Definition Query stammt.

Ein genaues Studium der Methoden des IGPUtilites-Objekts lohnt sich, denn für praktisch jeden Parametertyp gibt es eine passende Funktion.

Hat man die Parameter in herkömmliche ArcObjects umgewandelt, kann die Funktionalität des Tools wie gewohnt programmiert und ausgeführt werden. Hier stehen einem dann alle Möglichkeiten in der riesigen ArcObjects-Welt offen.

Übersicht:
Teil 1 (Einführung)
Teil 2 (Implementierung von IGPFunctionFactory)
Teil 3 (Implementierung von IGPFunction)
Teil 4 (Implementierung von IGPFunction:ParameterInfo)
Teil 5 (Implementierung von IGPFunction:Validate)
Teil 6 (Implementierung von IGPFunction:Execute)
Teil 7 (Fazit)