Leaflet 1.0 ist verfügbar!

Das Warten ist vorbei, Leaflet 1.0 ist verfügbar mit ca. 400 Änderungen zur vorherigen stabilen v0.7.7.

Leaflet_v1_0_Screenshot_!.pngScreenshot Ankündigung Leaflet 1.0 (Quelle: http://leafletjs.com/2016/09/27/leaflet-1.0-final.html)

QDraw: neues QGIS-Plugin

Ein neues (noch experimentelles) QGIS-Plugin „QDraw“ ist im offizellen QGIS-Repository verfügbar. Es erfüllt den oft von den Nutzern gehörten Wunsch nach den aus im ArcGIS vorhandenen Grafik-Elementen.
Es entsteht nicht wirklich eine Grafik im ArcGIS-Sinne, aber es können ganz simpel einfache Geometrien ohne neues Thema anlegen, Stile festlegen, … erstellt werden. Die Objekte werden in eine Gruppe „Drawings“ geschrieben und können ggf. auch als GIS-Daten, z. B. ESRI-Shape gespeichert werden. Gelungen! Man darf auf die Updates gespannt sein.

1472840440.png
Screenshot QGIS 2.16 & QDraw

QGIS: Cluster Renderer Crowdfunding

Wir sind es ja gewöhnt, dass der Code und die Anwendungen/Installer im OSS-Umfeld oft kostenlos zur Verfügung stehen, aufwandsfrei hingegen entstehen sie natürlich nicht. Deshalb muss auch immer nach Finanzierungsmöglichkeiten gesucht werden, eine davon ist z. B. eine Crowdfunding-Kampagne. Derzeit läuft eine solche zur Unterstützung eines Cluster-Renderers für QGIS, noch 12 Tage stehen zur Verfügung, Stand 700 von 2300 EUR, d. h. es werden noch Unterstützer gesucht! Also Leute …


Quelle: http://north-road.com/wp-content/uploads/2016/07/clusterer-830×481.png

Ritterschlag für QGIS

Na das ist doch mal eine Nachricht, die heute Nacht durch Twitter geisterte: Die Schweizer Armee setzt eine angepasste Version von QGIS unter dem Namen “KADAS Albireo” ein. In armee.ch heißt es dazu:

Im Rahmen des Projektes GeoInfo Verteidigung wurde die Standard-Kartenapplikation der Armee auf den neuesten Stand bei Technik und Design gebracht.

Der geoObserver freut sich und gratuliert! Eine zeitgemäße Entscheidung, sollte sie doch alle Zweifler an Open Source und freier Software eines Besseren belehren: Offener Code ist transparent, prüfbar  und damit letztlich sicherer. Und, nicht ganz unwichtig, sie spart Lizenzkosten. Die Schweizer Armee hat’s erkannt, eine Armee eben mit besonderen Anforderungen Sicherheit und Geheimhaltung.
Ein Ritterschlag, mögen andere nachziehen #switch2QGIS!

Details unter:

qgis_schweizer_armee_screenshoot_1
Screenshoot aus armee.ch 1/16, Seite 3 (Quelle: [2])

GIS: Und wo ist die Karte?

GIS: ein Parade-Beispiel für immer mehr Funktionen, die sehr oft sinnvoll und notwendig sind, teilweise auch fraglich sind. Jeder  sollte sich fragen, was brauch ich wirklich und was brauch ich eher nicht. Worauf konzentriere ich mich? Besser Weniges richtig und voll als viele halb. Wer alles haben will, macht sich das Leben selbst schwer und verliert den Blick auf das Wesentliche: den Inhalt (bei uns die Daten und die Karte)!


Gefährlich: Nutzeroberfläche (GUI) ohne Platz für das Wesentliche (Quelle: https://pbs.twimg.com/media/CpGP0cyUIAAwvnQ.jpg)

Mehr zum Thema: “GIS Software has to be Hard to Use” von James Fee

Freie GIS-Software

Eine schöne Übersicht freier GIS-Software twitterte am Wochenende  und verwies auf GIS Geography. Kernsatz und für mich quasi erster Lehrsatz der Open Source Bewegung:

“Sie müssen kein Vermögen zahlen, um die Welt abzubilden, weil Sie es mit freier GIS-Software tun können.”

Kurz vorgestellt werden:

R & Shapefile, a short script

„shape2pdf“ … mein Beitrag zum R-Shapefile-Contest
See also: http://www.geoobserver.de/shape2pdf/shape2pdf-readme.pdf
https://web.archive.org/web/20160910135536/http://www.geoobserver.de:80/shape2pdf/shape2pdf_readme.pdf

Maybe the shortest script in this contest. Short but effective. It is helpful for simply getting annoying tasks done. With just a few lines of code! It generates n thematic maps from n data columns from a shapefile into a PDF. Columns with not available values (NA) are sorted out. Code and data have to be in the same folder (here in „.“). The output-PDF is also generated in this folder. The example-data are from the OpenData-Server from the city Halle (http://www.daten.halle.de/). They were adjusted with QGIS. All columns with „*_t“ contain values as strings. Columns with „*_n“ contain numerical values. This points out differences in classifications.
The code should be adjusted and optimized on demand, e. g. by classifications. Code and data can be found at http://www.geoobserver.de/shape2pdf/shape2pdf.rar. Have fun testing it.

Vielleicht das kürzeste R-Skript im Contest? Kurz aber wirkungsvoll. Es hilft, “lästige“, wiederkehrende Aufgaben einfach und schnell zu erledigen.Uns das bei minimalem Code! Hier wird die Generierung von n thematischen Karten aus den n Sachdatenspalten eines Shapefiles in ein PDF unterstützt. Spalten mit unerlaubten Werten („NA“) werden vorher aussortiert. Das Skript und die Daten (Shapefile) stehen im gleichen Verzeichnis (hier „.“), das PDF wird auch dort generiert.
Die Daten stammen aus den Offenen Daten der Stadt Halle (http://www.daten.halle.de/) und wurden mit QGIS bearbeitet. Alle Spalten mit „*_t“ enthalten die Werte als Strings, „*_n“ als numerische Werte, um die Unterschiede bei der Klassifizierung zu zeigen.
Das Skript sollte bei Bedarf noch angepasst und optimiert werden, z. B. bzgl. der Klassifizierung.
Skript und Daten stehen unter http://www.geoobserver.de/shape2pdf/shape2pdf.rar zur Verfügung, viel Spaß beim testen.

# ----------------------------------------------
# shape2pdf.r           (last edit: 27.07.2016)
# by mike elstermann @geoobserver_ alias geoObserver
# ----------------------------------------------

setwd(".")
require(maptools)
library(rworldmap)

pdf("_my_shapefile_output.pdf", width=8.26,height=11.69) # open the output PDF DIN-A4 H
inFile <- 'halle_flat_2013.shp'          # open the shapefile

sPDF <- readShapePoly(inFile)
df <- sPDF@data                          # via reading structur (str)
columns_all <- names(df)
# or define the Shape-Columns: columns <- c("SHAPE_AREA", "sum_n") via user-definition

df <- df[,colSums(is.na(df)) < nrow(df)] # remove columns with only "NA"
columns_not_na <- names(df)

for (column in columns_not_na) {
      cat("\n##### creating MAP with column:", column, ". . .")
      par(pin=c(7,10))
      plot(sPDF,axes=TRUE)
      mapParams <- mapCountryData( sPDF
                                   , nameColumnToPlot=column
                                   , mapTitle=paste("column: ",column)
                                   , addLegend=FALSE
                                   , catMethod="quantiles" # "categorical" #"quantiles"
                                   , add=TRUE
                                   )
      do.call( addMapLegendBoxes, c( mapParams, title=paste("column: ",column)
                                     #, legendLabels="all"
                                     #, legendWidth=1.0
                                     #, labelFontSize=0.5
                                     #, legendMar=6.5
                                     #, horizontal=TRUE
                                     #, tcl=-.5
      )) 
      grid()
}
dev.off() # close the output PDF
rm(df, columns_all, columns_not_na, inFile, mapParams, sPDF, column) #remove all vars ()