geoserver+openlayer

早在二月份就接触到了geoserver,当时只是将自己转出的数据(postgre+postgis)存储。而geoserver则只是做一个大概的图形化检查工具。后来发现了c/s模式的开源软件qgis,就暂时把geoserver放在了一边。
这两天不停的折腾geoserver。当时只是成功的改写了sld,现在还没有找到当时写的文档,有空补起来。
今天想做的一个功能就是将几个layer叠加显示。

先就是将geoserver生成的地图载入就出现了问题,不知道如何将wms载入进openlayer的layer对象,openlayer的说明文档又
实在是少的可怜。就看着那个api在哪里傻傻发呆。由于自己的机器只能上少数网站,在openlayer网站上下载的例子又基本不能看。所以很是郁闷。
后来查了很多资料,发现每个人说的都只是自己做对的部分,并没有什么解释。尤其是生成layer对象,解释实在是太少了。
没有办法,只有把geoserver的例图打开,然后在那个wms页面上,点击查看源代码,这样才知道如何生成一个从geoserver出来的wms

  1.    tiled = new OpenLayers.Layer.WMS(
  2.                 “topp:road – Tiled”“http://gttest:8080/geoserver/wms”,
  3.                 {
  4.                     srs: ‘EPSG:4312’,
  5.                     width: ‘800’,
  6.                     styles: ,
  7.                     height: ‘418’,
  8.                     layers: ‘topp:road’,
  9.                     format: ‘image/png’,
  10.                     tiled: ‘true’,
  11.                     tilesOrigin : “108.14681672590744,28.957956039271213”
  12.                 },
  13.                 {buffer: 10000} 
  14.             );

这里面,“topp:road – Tiled”只是这个wms图层的名称而已,“http://gttest:8080/geoserver/wms”对应的是wms的服务器
 layers: ‘topp:road’,这个才是要加载的图层。topp是图层所在的命名空间。其他参数还是比较容易明白。但tiled不知道是什么意思,在openlayer参数里面,有tiled和untiled两种layer。具体的意思不是太明白。
但是在map.addLayer时候,好像tiled的加不进去。tiled图层只能addLayers,以数组形式传入。
  map.addLayer(untiled);
然后就是加入openlayer的控件。

  1.   map.addControl(new OpenLayers.Control.PanZoomBar());
  2.             map.addControl(new OpenLayers.Control.Navigation());
  3.             map.addControl(new OpenLayers.Control.Scale($(‘scale’)));
  4.             map.addControl(new OpenLayers.Control.MousePosition({element: $(‘location’)}));
  5.             map.addControl(new OpenLayers.Control.LayerSwitcher());
  6.             map.addControl(new OpenLayers.Control.NavToolbar());
  7.             map.addControl(new OpenLayers.Control.OverviewMap());
  8.         
  9.             map.zoomToExtent(bounds);

最后一句就是缩放到一个范围。

以前做的gis项目都是c/s模式,不管是c#+arcgis还是现在的c+++postgresql+postgis+qgis,没有涉及到网络。
今天浏览生成的wms,也还是很慢。应该是服务器配置问题。在webgis这方面自己还很空白,需要多花时间学习。只是现在项目和这无关。只有先快点把其他的话干完,有空过来学习学习。

转载自:https://blog.csdn.net/xbt746/article/details/2778116

You may also like...