我使用GWT-Openlayers,我想在我的Map中添加一个WMS图层。这是代码:
...
MapOptions defaultMapOptions = new MapOptions();
defaultMapOptions.setNumZoomLevels(7);
//Create a MapWidget
MapWidget mapWidget = new MapWidget("700px", "700px", defaultMapOptions);
GoogleV3Options gSatelliteOptions = new GoogleV3Options();
gSatelliteOptions.setIsBaseLayer(true);
gSatelliteOptions.setType(GoogleV3MapType.G_SATELLITE_MAP);
GoogleV3 gSatellite = new GoogleV3("Google Satellite", gSatelliteOptions);
mapWidget.getMap().addLayer(gSatellite);
//Create a WMS layer as base layer
WMSParams wmsParams = new WMSParams();
wmsParams.setFormat("image/png");
wmsParams.setLayers("topp:tasmania_state_boundaries");
wmsParams.setStyles("");
wmsParams.setParameter("transparent", "true");
//create a WMS layer
WMSOptions wmsLayerParams = new WMSOptions();
wmsLayerParams.setUntiled();
wmsLayerParams.setTransitionEffect(TransitionEffect.RESIZE);
wmsLayerParams.setIsBaseLayer(false);
String wmsUrl = "http://demo.opengeo.org/geoserver/wms";
final WMS wmsLayer = new WMS("Basic WMS", wmsUrl, wmsParams,
wmsLayerParams);
//Add the WMS to the map
Map map = mapWidget.getMap();
map.addLayer(wmsLayer);
//Lets add some default controls to the map
map.addControl(new LayerSwitcher()); //+ sign in the upperright corner to display the layer switcher
map.addControl(new OverviewMap()); //+ sign in the lowerright to display the overviewmap
map.addControl(new ScaleLine()); //Display the scaleline
map.addControl(new MousePosition());
//Center and zoom to a location
LonLat lonLat = new LonLat(146.7, -41.8);
lonLat.transform(new Projection(ProjectionCode.LONGLAT.getEpsgCode()).getProjectionCode(),
map.getProjection()); //transform lonlat to OSM coordinate system
map.setCenter(lonLat, 6);
...
我使用了在此网站上找到的示例代码: http://demo.gwt-openlayers.org/gwt_ol_showcase/GwtOpenLayersShowcase.html
任何人都可以尝试,因为wmsUrl指向演示站点。
问题是WMS图层仅在我缩小到最外面的缩放级别时出现。比如果我尝试放大,它会再次消失。有什么想法吗?
答案 0 :(得分:1)
我找到了一个设置:
wmsLayerParams.setDisplayOutsideMaxExtent(true);
但我不明白为什么真正的价值不是默认值......
答案 1 :(得分:1)
您似乎没有正确设置缩放级别。您的缩放级别仅为6-7。你已经定义了最大值。缩放为7. defaultMapOptions.setNumZoomLevels(7);
并将地图置于缩放级别6的中心。map.setCenter(lonLat, 6);
因此地图仅显示缩放级别6和7之间。
将setNumZoomLevels
增加到更高的值可能会有所帮助。