Ich möchte ein Open-Street-Map-Widget in meine Apache Wicket-Anwendung aufnehmen. Im mit der wicket-contrib-openlayers Komponente aus wicket-stuff und der folgenden Code ein:Wicket: Openlayers Integration & Open Streetmaps Layer
List<Layer> layers = new ArrayList<Layer>();
Layer layerOSMTilesAtHome = new OSM("Osmarender", OSMLayer.TilesAtHome);
Layer layerOSMMapnik = new OSM("Mapnik", OSMLayer.Mapnik);
Layer layerOSMCycleMap = new OSM("CycleMap", OSMLayer.CycleMap);
layers.add(layerOSMMapnik);
layers.add(layerOSMTilesAtHome);
layers.add(layerOSMCycleMap);
HashMap<String, String> mapOptions = new HashMap<String, String>();
Bounds boundsExtend = new Bounds(new LonLat(-20037508.34, -20037508.34), new LonLat(20037508.34, 20037508.34));
mapOptions.put("maxExtent", boundsExtend.getJSconstructor());
mapOptions.put("projection", "new OpenLayers.Projection('EPSG:900913')");
mapOptions.put("displayProjection", "new OpenLayers.Projection('EPSG:4326')");
mapOptions.put("units", "'meters'");
mapOptions.put("maxResolution", "156543");
mapOptions.put("numZoomLevels", "18");
OpenLayersMap map = new OpenLayersMap("map", layers, mapOptions);
map.addControl(Control.LayerSwitcher);
map.addControl(Control.MousePosition);
map.addControl(Control.KeyboardDefaults);
add(map);
Dies ist eine 1: 1 Kopie des SimpleOpenStreetMapExample von der Komponente. Das Problem ist jetzt: Wie stelle ich das Zentrum der Karte ein? Ich versuchte ein
map.setCenter(new LonLat(5, 50), 13);
nach dem "add (map);" aus dem obigen Code. Dies funktioniert nicht, die Karte ändert sich überhaupt nicht. Ich bin nicht sicher, welche Einheit Lon und Lat haben in sein, ich habe auch versucht, sie Mercator-System mit diesem Verfahren zu konvertieren:
private static double lon2Merc(double lon) {
return 20037508.34*lon/180.0;
}
private static double lat2Merc(double lat) {
lat = Math.log(Math.tan((90.0 + lat)*Math.PI/360.0))/(Math.PI/180.0);
return 20037508.34*lat/180.0;
}
Aber dieses nicht hilft, ändert sich nichts.
Also: Kann irgendjemand ein kurzes Beispiel schreiben, wie man eine OSM-Map in Wicket einbaut und wie man den Center- und Zoom-Level einstellt?
Vielen Dank!