geoserver安装_Geoserver的个人使用体验

如果要做矢量切片+ ceisum架构的话,arcgis是指望不上了,这时候就要用geoserver作为替代品。

geoserver相比较arcgis是更偏向后端的,甚至是难用的,连基本的中文支持都很僵硬,毕竟是开源的产品。

这里把工作中接触到的相关内容都列举出来,仅作一个记录,预防中年痴呆。

1.安装

基本没啥好说的,网上都是教程。geoserver有两种选择,爱折腾的会点后端的选war包安装,不作为服务器用作实际生产环境的就下客户端,但两者的前提都是java环境。

war包

http://sourceforge.net/projects/geoserver/files/GeoServer/2.18.1/geoserver-2.18.1-war.zip

要说一句的是,用tomcat启动服务时要给用户对该文件夹完全的操作权限,否则文件读写会出现问题。

客户端

https://github.com/geoserver/geoserver/archive/2.18.1.zip

2.跨域

nginx转发并不能解决跨域的问题,应该是geoserver本身内部逻辑造成的,我自己用的是这里的解决方案,照葫芦画瓢就行。

Geoserver 2.18.0 解决跨域​www.cnblogs.com

3.发布服务

情景:轻度使用,发布一些shp文件作为切片资源从前端获取

1.先建个工作区,没什么好说的

31f1f45b7a1dfe14c438fd72dafb3c5c.png

2.再建个数据存储,创建geoserver与shp文件之间的索引

e31beee02d2ec92b92a62f3f3ff48c48.png

3.再再图层标签中添加图层

435368501fee4e32ecb410ba88878c3f.png

4.样式

对导入的shp做个样式的控制,否则会有两个问题,

一个是切片不带label,

第二个是不能控制带label的显示层级,在小尺度下显得凌乱

229e9953d896a26b70464039444cdb49.png

geoserver自带一个tiger_roads的样式,

copy下来做两个地方的修改

f1e57a35ed20c7112910e20438491517.png

一个是label的属性名称要对应上

<ogc:PropertyName>NAME</ogc:PropertyName>

另一个是控制label的显示层级

<MaxScaleDenominator>32000</MaxScaleDenominator>

当然这不是全部,花两天时间系统地了解下吧

GeoServer 2.18.x User Manual​docs.geoserver.org

5.切片

e8d8eb3bec514fcb6bd057a354ea8a7e.png

进入后,

-type of operation: ressed //重新切片

-grid set // 切片方案,自己感觉900913出现最后加载不上去的问题比较少

styles:自定义style,但要设置过,否则列表中不会存在选项

设置过程:

7874f317cc9305b83224d8abce0fe940.png

c81d11e90b35d04348a9861ee751ad69.png

93cc6f0d6f3998c40269e47f2b23ac4a.png

6.cesium加载

geoserver结合cesium最离谱的地方就在这个加载,不得不否认geoserver在ol和leaflet这些轻量级gis框架上的支持确实不赖,但在cesium上是真的离谱,以至于现在还没实现对geojson格式的加载。

先贴实现的代码

tms

    viewer.scene.imageryLayers.addImageryProvider(
      new Cesium.UrlTemplateImageryProvider({
        url: 'http://localhost:8080/geoserver/gwc/service/tms/1.0.0/tms%3Ariver@EPSG%3A900913@png/{z}/{x}/{reverseY}.png'
        tilingScheme: new Cesium.GeographicTilingScheme()
      })
    )

其中这一串http://localhost:8080/geoserver/gwc/service/tms/1.0.0/tms%3Ariver@EPSG%3A900913@png

是在这里

8f2bd2c714ffda25ec04047cce71d409.png

642a45e8a89e7ecabd15765c84920513.png

wtms

    var tileScheme = new Cesium.GeographicTilingScheme();
    var wmtsProvider = new Cesium.WebMapTileServiceImageryProvider({
      url: "http://localhost:8080/geoserver/gwc/service/wmts?",
      layer: "tiger:tiger_roads",
      style: '',
      format: 'image/png',
      tileMatrixSetID: 'EPSG:4326',
      tilingScheme: tileScheme,
      tileMatrixLabels: [
        'EPSG:4326:0', 'EPSG:4326:1', 'EPSG:4326:2', 'EPSG:4326:3', 'EPSG:4326:4', 'EPSG:4326:5', 'EPSG:4326:6', 'EPSG:4326:7', 'EPSG:4326:8', 'EPSG:4326:9', 'EPSG:4326:10', 'EPSG:4326:11', 'EPSG:4326:12',
        'EPSG:4326:13', 'EPSG:4326:14', 'EPSG:4326:15', 'EPSG:4326:16', 'EPSG:4326:17', 'EPSG:4326:18', 'EPSG:4326:19', 'EPSG:4326:20', 'EPSG:4326:21', 'EPSG:4326:22', 'EPSG:4326:23'
      ],
      minimumLevel: 0,
      maximumLevel: 19,
      tileWidth: 256,
      tileHeight: 256
    });

需要注意的点是,请求之前记得把切片切好,要不然可能加载不出来,或者加载不了自己想要的样式。

全文结束。。

ps:谁有方法把geojson格式加载出来就是我大哥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值