오픈 아파치 위젯 응용 프로그램에 공개지도 위젯을 포함하고 싶습니다. wicket-stuff에서 wicket-contrib-openlayers 구성 요소를 사용하여 임 다음과 같은 코드 : 구성 요소에서 SimpleOpenStreetMapExample 1 부 :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);
이는 1입니다. 이제 문제는 :지도의 중심을 어떻게 설정합니까? 시도해 보니
map.setCenter(new LonLat(5, 50), 13);
"추가 (지도); 위의 코드에서. 이 doesnt 일,지도는 전혀 바뀌지 않는다. 경도와 위도가있는 것으로 무엇을 단위 임 확실하지, 나 또한 그들에게이 방법을 사용하여 메르카토르 - 시스템 변환을 시도 :
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;
}
하지만이 나던 도움을, 아무것도 변경되지 않습니다.
그래서 누구든지 OSM-Map을 Wicket에 삽입하는 방법과 센터 및 줌 레벨을 설정하는 방법에 대한 간단한 예를 게시 할 수 있습니까?
감사!