当前位置: 代码迷 >> GIS >> Openlayers 使用WFS添加到数据库一个点,怎样才能显示在页面?解决思路
  详细解决方案

Openlayers 使用WFS添加到数据库一个点,怎样才能显示在页面?解决思路

热度:659   发布时间:2016-05-05 06:31:13.0
Openlayers 使用WFS添加到数据库一个点,怎样才能显示在页面?急!!!!!!!!!
急求各位, 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);
  相关解决方案