Geoserver发布shp、tiff等地图服务及配置样式

1 发布shp矢量数据

发布shp分为两种方式:

  1. 单独发布指定的shp文件;(适合临时发布一个数据,测试用)
  2. 将一个文件夹内的shp数据统一发布。(适合同时发布多个数据,且在同一个文件夹下)

1.1 添加shp作为数据源

添加存储仓库:
在这里插入图片描述

根据需要选择你的数据源类型,本教程选择第一个Directory of spatial files (shapefiles)
在这里插入图片描述
将存放shp数据的文件夹,发布为数据源:
在这里插入图片描述

1.2 发布shp图层

在这里插入图片描述
点击发布,然后设置一些服务选项即可:
在这里插入图片描述
数据
在这里插入图片描述
Tile Caching
在这里插入图片描述
点击保存,即完成发布。

1.3 预览服务

在左侧的图层预览中,找到刚刚发布的图层名字,以openlayers方式预览 (此时地图是默认的样式):
在这里插入图片描述
在这里插入图片描述

1.4 配置样式

参考官方给的 样式示例,根据需要选择一个适合的sld文件进行下载:
此处选择一个带有标签的sld文件
在这里插入图片描述

Geoserver中新建样式,上传刚刚下载的sld 样式文件,点击保存完成样式创建:
在这里插入图片描述
当然,也可以直接copy下面的xml到内容框里(建议):

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:se="http://www.opengis.net/se" version="1.1.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" xmlns:xlink="http://www.w3.org/1999/xlink">
  <NamedLayer>
    <se:Name>Province_Henan</se:Name>
    <UserStyle>
      <se:Name>Province_Henan</se:Name>
      <se:FeatureTypeStyle>
        <se:Rule>
          <se:Name>Single symbol</se:Name>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">#85b66f</se:SvgParameter>
            </se:Fill>
            <se:Stroke>
              <se:SvgParameter name="stroke">#232323</se:SvgParameter>
              <se:SvgParameter name="stroke-width">1</se:SvgParameter>
              <se:SvgParameter name="stroke-linejoin">bevel</se:SvgParameter>
            </se:Stroke>
          </se:PolygonSymbolizer>
        </se:Rule>
        <se:Rule>
          <se:TextSymbolizer>
            <se:Label>
              <ogc:PropertyName>name</ogc:PropertyName>
            </se:Label>
            <se:Font>
              <se:SvgParameter name="font-family">微软雅黑</se:SvgParameter>
              <se:SvgParameter name="font-size">13</se:SvgParameter>
            </se:Font>
            <se:LabelPlacement>
              <se:PointPlacement>
                <se:AnchorPoint>
                  <se:AnchorPointX>0</se:AnchorPointX>
                  <se:AnchorPointY>0.5</se:AnchorPointY>
                </se:AnchorPoint>
              </se:PointPlacement>
            </se:LabelPlacement>
            <se:Halo>
              <se:Radius>2</se:Radius>
              <se:Fill>
                <se:SvgParameter name="fill">#ffffff</se:SvgParameter>
              </se:Fill>
            </se:Halo>
            <se:Fill>
              <se:SvgParameter name="fill">#000000</se:SvgParameter>
            </se:Fill>
            <se:VendorOption name="maxDisplacement">1</se:VendorOption>
          </se:TextSymbolizer>
        </se:Rule>
      </se:FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

在图层中,找到刚刚发布的图层:
在这里插入图片描述
选择刚刚创建的样式名称,点保存:
在这里插入图片描述
保存之后,继续预览该图层,发现已经有样式和标注了:
在这里插入图片描述

2 发布Postgres数据库

为了教程,新建了一个面图层,作为测试:
在这里插入图片描述

2.1 添加数据库作为数据源

在这里插入图片描述
通过IP 端口,用户名+密码,连接指定数据库test_gis
在这里插入图片描述
如果你的输入都正确的话,保存之后,会自动跳转到:
在这里插入图片描述

2.2 发布数据

后面的发布过程与shp一样了。请参考前面的步骤。。。
在这里插入图片描述

3 发布 Tif 栅格数据

3.1 添加 tif 数据源

添加存储仓库:
在这里插入图片描述
新建数据源:
在这里插入图片描述
选中tif文件
在这里插入图片描述

3.2 发布tif数据

在这里插入图片描述
默认选项可以不用更改,直接点保存,即完成发布。
在这里插入图片描述

3.3 预览服务

在这里插入图片描述
在这里插入图片描述
OK!
在这里插入图片描述

3.4 配置地图样式

默认的样式只有灰度,如果想让它展示五彩斑斓,参考官方样式说明 Geoserver SLD样式规范,流程如下:

根据需要下载一个sld文件:
在这里插入图片描述
Geoserver中新建样式,并上传刚刚下载的sld 样式文件:
在这里插入图片描述

新建样式完成后,回到图层中,找到刚刚发布tif图层,给它选择样式。
在这里插入图片描述

选中刚刚新建的样式名字:
在这里插入图片描述
在这里插入图片描述
重新预览地图,发现已经变了颜色:
在这里插入图片描述

4 发布预切好的瓦片数据

待补充:

问题总结(踩坑记录):

1 关于中文标注乱码的问题

在Linux系统上,排除编码问题后,依旧显示方框,此时查看geoserver中支持的字体,并没有中文。
在这里插入图片描述

因此,需要给所在的Linux系统,增加中文字体。
从当前所使用Windows系统中,copy出一些中文字体,如:
在这里插入图片描述
然后,将其上传至Linux服务器,可以存放到/usr/share/fonts/font_zh,并安装字体:

# 进入你存字体的目录
cd /usr/share/fonts/font_zh
# 安装
sudo apt -y install xfonts-utils fontconfig
# xfonts-utils 生产字体索引 
sudo mkfontscale
sudo mkfontdir
# fontconfig 更新字体缓存
sudo fc-cache

安装好字体之后,重启一下系统,再次进入Geoserver检查,发现已经有了中文字体。
此时,图层的中文标注也可以正常显示!

  • 4
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
发布shp文件到GeoServer,首先需要确保GeoServer支持shp数据源。根据引用中的信息,我们可以知道GeoServer是支持shp数据源的。接下来,可以按照以下步骤来发布shp文件到GeoServer: 1. 安装GeoServer:根据引用中的指引,首先需要安装和配置Java环境,然后将GeoServer部署在Tomcat服务器上。 2. 登录GeoServer:使用默认用户名和密码(admin/geoserver),登录到GeoServer管理界面。根据引用中的信息,在网页的右上角输入用户名和密码即可登录。 3. 创建工作区(Workspace):在GeoServer管理界面中,点击"工作区"选项卡,然后点击"添加新工作区"按钮。根据需要填写工作区的名称和命名空间URI,然后点击"保存"按钮。 4. 创建数据存储(Data Store):在GeoServer管理界面中,点击"存储"选项卡,然后点击"添加新数据存储"按钮。在数据存储类型中选择"Shapefile",然后根据需要填写数据存储的名称和工作区,点击"下一步"按钮。 5. 上传shp文件:在数据存储配置界面中,点击"选择文件"按钮,选择要发布shp文件,并点击"上传"按钮。填写shp文件的坐标系信息,然后点击"下一步"按钮。 6. 确认发布信息:在数据存储配置界面中,确认发布的信息,并根据需要进行其他配置。点击"保存"按钮完成shp文件的发布。 现在,你已经成功将shp文件发布到了GeoServer。你可以在GeoServer管理界面中查看发布的图层,并根据需要进行其他操作,如样式设置、图层权限管理等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [JavaWeb和WebGIS学习笔记(三)——GeoServer 发布shp数据地图](https://blog.csdn.net/u012685544/article/details/125760484)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值