• Geoserver发布shp、tiff、瓦片等格式的GIS数据


    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到内容框里(建议):

    
    <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_Henanse:Name>
        <UserStyle>
          <se:Name>Province_Henanse:Name>
          <se:FeatureTypeStyle>
            <se:Rule>
              <se:Name>Single symbolse:Name>
              <se:PolygonSymbolizer>
                <se:Fill>
                  <se:SvgParameter name="fill">#85b66fse:SvgParameter>
                se:Fill>
                <se:Stroke>
                  <se:SvgParameter name="stroke">#232323se:SvgParameter>
                  <se:SvgParameter name="stroke-width">1se:SvgParameter>
                  <se:SvgParameter name="stroke-linejoin">bevelse:SvgParameter>
                se:Stroke>
              se:PolygonSymbolizer>
            se:Rule>
            <se:Rule>
              <se:TextSymbolizer>
                <se:Label>
                  <ogc:PropertyName>nameogc:PropertyName>
                se:Label>
                <se:Font>
                  <se:SvgParameter name="font-family">微软雅黑se:SvgParameter>
                  <se:SvgParameter name="font-size">13se:SvgParameter>
                se:Font>
                <se:LabelPlacement>
                  <se:PointPlacement>
                    <se:AnchorPoint>
                      <se:AnchorPointX>0se:AnchorPointX>
                      <se:AnchorPointY>0.5se:AnchorPointY>
                    se:AnchorPoint>
                  se:PointPlacement>
                se:LabelPlacement>
                <se:Halo>
                  <se:Radius>2se:Radius>
                  <se:Fill>
                    <se:SvgParameter name="fill">#ffffffse:SvgParameter>
                  se:Fill>
                se:Halo>
                <se:Fill>
                  <se:SvgParameter name="fill">#000000se:SvgParameter>
                se:Fill>
                <se:VendorOption name="maxDisplacement">1se:VendorOption>
              se:TextSymbolizer>
            se:Rule>
          se:FeatureTypeStyle>
        UserStyle>
      NamedLayer>
    StyledLayerDescriptor>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

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

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

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

  • 相关阅读:
    动态内存管理
    无代码 10 月资讯 |Zapier 推出创新计划;微软产品大更新;Gartner发布《2023年十大战略技术趋势》
    OpenGL ES Windows 搭建环境(MFC版本)
    软考 --- 数据库(3)数据操作
    Python练习题:根据一段单词,找出其中的最长单词
    设计模式之适配器模式
    Python | eval、exec | 执行动态代码字符串
    云原生架构之Spring Cloud+Kubernetes配置中心方案
    软件评测师之RISC/CISC
    记一次用arthas排查jvm中CPU占用过高问题
  • 原文地址:https://blog.csdn.net/qq_27816785/article/details/132754740