急求各位, Openlayers
1、使用WFS添加一个点到数据库后,进行刷新可以显示出新添加的那个点,但是怎么样才能不刷新就显示出来呢?使用过layer.redraw(); 不管用,我使用new OpenLayers.Layer.WMS载入的。求具体方法啊。试过删除图层也不管用。
2、直接在数据库一个点,但是怎么让浏览器显示出来呢?浏览器关掉再开也不管用,怀疑是没有重新加载wms的原因,请问大家这个应该怎样解决啊? 应该是被缓存了,,,进入geoserver 平台,点击“载入”再次刷新页面就出现那个点了。。。。
大家有遇到过这种情况的没?都是怎么解决的?
------解决方案--------------------
看了楼上给的信息感觉楼主你需要的是不是只刷新一下你的“tiled” 这个layer呀?用“layer.redraw(true)”这个方法可以刷新指定的layer.
图层刷新的官方介绍:
http://dev.openlayers.org/apidocs/files/OpenLayers/Layer-js.html#OpenLayers.Layer.redraw
------解决方案--------------------
另外如果用vector layer的话你可以尝试用marker (http://dev.openlayers.org/docs/files/OpenLayers/Marker-js.html). 你点击相应的marker 就可以在“点”的旁边显示出字来
这个是官方例子:
- JScript code
var map, layer; function init(){ OpenLayers.ProxyHost="/proxy/?url="; map = new OpenLayers.Map('map'); layer = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} ); map.addLayer(layer); map.setCenter(new OpenLayers.LonLat(0, 0), 0); var newl = new OpenLayers.Layer.Text( "text", { location:"./textfile.txt"} ); map.addLayer(newl); var markers = new OpenLayers.Layer.Markers( "Markers" ); map.addLayer(markers); var size = new OpenLayers.Size(21,25); var offset = new OpenLayers.Pixel(-(size.w/2), -size.h); var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png',size,offset); markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon)); var halfIcon = icon.clone(); markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,45),halfIcon)); marker = new OpenLayers.Marker(new OpenLayers.LonLat(90,10),icon.clone()); marker.setOpacity(0.2); marker.events.register('mousedown', marker, function(evt) { alert(this.icon.url); OpenLayers.Event.stop(evt); }); markers.addMarker(marker); map.addControl(new OpenLayers.Control.LayerSwitcher()); map.zoomToMaxExtent(); halfIcon.setOpacity(0.5);