Archiv für Mai 2015

basemap mit Vaadin verknüpfen

Geposted in Programmieren am 2. Mai 2015 um 16:52 von schneida – Sei der erste, der ein Kommentar schreibt

Das basemap.at Projekt ist eine auf amtlichen Geodaten basierende Grundkarte von Österreich die frei verfügbar ist und von den Bundesländern und einigen weiteren Partner erstellt und gewartet wird. Möchte man die Basemap mit dem Web Framework Vaadin verknüpfen geht das dank des Leaflet Vaadin Addons sehr einfach.

Zuerst fügt man das Vaadin Leaflet Addon als Abhängigkeit zur pom.xml des Projekts hinzu (nicht vergessen, Widgetset neukompilieren!):

<dependency>
   <groupId>org.vaadin.addon</groupId>
   <artifactId>v-leaflet</artifactId>
   <version>0.6.3</version>
</dependency>

Anschließend erstellt man sich einen Kartenprovider für basemap.at der mit Leaflet verwendet werden kann. Dazu legt man eine neue Java-Klasse zB: BasemapMapLayer.java:

import org.vaadin.addon.leaflet.LTileLayer;
public class BasemapMapLayer extends LTileLayer {

  public BasemapMapLayer() {
    super("http://{s}.wien.gv.at/basemap/geolandbasemap/normal/google3857/{z}/{y}/{x}.png");
    setAttributionString("Karte: <a href=\"http://basemap.at\" target=\"_blank\">"
+ "basemap.at</a>, <a href=\"http://creativecommons.org/licenses/by/3.0/at/deed.de\" " + "target=\"_blank\">CC-BY 3.0</a>"); setMinZoom(1); setMaxZoom(18); setTms(false); setSubDomains("maps", "maps1", "maps2", "maps3"); setContinuousWorld(false); setNoWrap(false); } }

Der nun erstellte MapLayer kann auch schon direkt verwendet werden zB so:

LMap map = new LMap();
map.addBaseLayer(new BasemapMapLayer(), "Basemap.at");
map.setCenter(48.210033, 16.363449);
map.setZoomLevel(10);

Das wars auch schon wieder. Jetzt fehlt mir nur noch ein guter (freier) Geocoder für Österreich und schon kann man schöne kartenbasierte Webanwendungen für Österreich schreiben. Jemand einen Tipp?