【WebGIS实例】(16)GeoServer 自定义样式 - 渲染矢量数据

news2024/12/28 3:47:12

1. 前言

本篇博客将会分享一系列的 GeoServer 样式,通过这些样式预先在服务端完成数据渲染,让前端应用更便捷的加载数据服务。

2. 面矢量

示例数据
在这里插入图片描述

{
  type: 'FeatureCollection',
  features: [
    {
      type: 'Feature',
      properties: {
        分类字段: '字段一'
      },
      geometry: {
        coordinates: [[[158, 44],[158, 40],[165, 40],[165, 44],[158, 44]]],
        type: 'Polygon'
      },
      id: 0
    },
    {
      type: 'Feature',
      properties: {
        分类字段: '字段二'
      },
      geometry: {
        coordinates: [[[158, 39],[158, 36],[165, 36],[165, 39],[158, 39]]],
        type: 'Polygon'
      }
    },
    {
      type: 'Feature',
      properties: {
        分类字段: '字段三'
      },
      geometry: {
        coordinates: [[[166, 44],[166, 41],[174, 41],[174, 44],[166, 44]]],
        type: 'Polygon'
      }
    },
    {
      type: 'Feature',
      properties: {
        分类字段: '字段四'
      },
      geometry: {
        coordinates: [[[166, 40],[166, 36],[174, 36],[174, 40],[166, 40]]],
        type: 'Polygon'
      }
    }
  ]
}

2.1. 无描边单色填充

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" version="1.1.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:se="http://www.opengis.net/se" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink">
  <NamedLayer>
    <se:Name>面矢量</se:Name>
    <UserStyle>
      <se:Name>面矢量</se:Name>
      <se:FeatureTypeStyle>
        <se:Rule>
          <se:Name>无描边单色填充</se:Name>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">#417656</se:SvgParameter>
            </se:Fill>
          </se:PolygonSymbolizer>
        </se:Rule>
      </se:FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

修改上述代码中的 #417656 即可改变配色。

2.2. 描边单色填充

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:se="http://www.opengis.net/se" version="1.1.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd">
  <NamedLayer>
    <se:Name>面矢量</se:Name>
    <UserStyle>
      <se:Name>面矢量</se:Name>
      <se:FeatureTypeStyle>
        <se:Rule>
          <se:Name>描边单色填充</se:Name>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">#417656</se:SvgParameter>
            </se:Fill>
            <se:Stroke>
              <se:SvgParameter name="stroke">#000</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:FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

2.3. 根据属性字段分类填充

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:se="http://www.opengis.net/se" version="1.1.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd">
  <NamedLayer>
    <se:Name>面矢量</se:Name>
    <UserStyle>
      <se:Name>面矢量</se:Name>
      <se:FeatureTypeStyle>
        <se:Rule>
          <se:Name>字段一</se:Name>
          <se:Description>
            <se:Title>字段一</se:Title>
          </se:Description>
          <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
            <ogc:PropertyIsEqualTo>
              <ogc:PropertyName>分类字段</ogc:PropertyName>
              <ogc:Literal>字段一</ogc:Literal>
            </ogc:PropertyIsEqualTo>
          </ogc:Filter>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">#f7fbff</se:SvgParameter>
            </se:Fill>
          </se:PolygonSymbolizer>
        </se:Rule>
        <se:Rule>
          <se:Name>字段二</se:Name>
          <se:Description>
            <se:Title>字段二</se:Title>
          </se:Description>
          <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
            <ogc:PropertyIsEqualTo>
              <ogc:PropertyName>分类字段</ogc:PropertyName>
              <ogc:Literal>字段二</ogc:Literal>
            </ogc:PropertyIsEqualTo>
          </ogc:Filter>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">#c8dcf0</se:SvgParameter>
            </se:Fill>
          </se:PolygonSymbolizer>
        </se:Rule>
        <se:Rule>
          <se:Name>字段三</se:Name>
          <se:Description>
            <se:Title>字段三</se:Title>
          </se:Description>
          <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
            <ogc:PropertyIsEqualTo>
              <ogc:PropertyName>分类字段</ogc:PropertyName>
              <ogc:Literal>字段三</ogc:Literal>
            </ogc:PropertyIsEqualTo>
          </ogc:Filter>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">#73b2d8</se:SvgParameter>
            </se:Fill>
          </se:PolygonSymbolizer>
        </se:Rule>
        <se:Rule>
          <se:Name>字段四</se:Name>
          <se:Description>
            <se:Title>字段四</se:Title>
          </se:Description>
          <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
            <ogc:PropertyIsEqualTo>
              <ogc:PropertyName>分类字段</ogc:PropertyName>
              <ogc:Literal>字段四</ogc:Literal>
            </ogc:PropertyIsEqualTo>
          </ogc:Filter>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">#2979b9</se:SvgParameter>
            </se:Fill>
          </se:PolygonSymbolizer>
        </se:Rule>
      </se:FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

持续(缓慢)更新……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2122987.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PPT复制图表时颜色发生变化怎么办?

有时可能想复制其他PPT的图表到另一个PPT里&#xff0c;复制过来发现颜色发生了变化&#xff0c;这与我们PPT中的主题色颜色不同有关&#xff0c;所以就导致了图表的变色。 以上两张图片就是发生了变色的情况&#xff0c;一个是原来的颜色&#xff0c;一个是变化后的颜色。 解…

【鸿蒙】HarmonyOS NEXT星河入门到实战4-ArkTS界面布局深入

目录 一、布局元素组成 1.1 内边距-padding 1.2 外边距 margin 1.3 实战案例-QQ音乐-登录 1.4 边框 border 二、设置组件圆角 2.1 基本圆角设置 2.2 特殊形状的圆角设置 三、背景属性 3.1 背景图片-backgroundImage 3.2 背景图片位置-backgroundImagePosition 3.3 背…

什么是梯度? 梯度的作用 梯度的应用场景。

梯度 是一个非常重要的概念,它直接关系到模型的训练过程。以下是对梯度的详细解释: 梯度的基本概念 梯度 是一个向量,表示函数在某一点的导数或偏导数。在多维空间中,梯度指向的是函数值上升最快的方向。对于一个函数 f(x),在某一点 x 处的梯度记作 ∇f(x),它可以理解为在…

【Linux进程详解】进程地址空间

目录 1.直接写代码看现象 2.引入最基本的理解 3.细节问题-理解它 1.直接写代码看现象 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <unistd.h> int g_val 100;int main() {printf("fath…

常回家看看之house of kiwi

house of kiwi 前言&#xff1a;house_of_kiwi 一般是通过触发__malloc_assert来刷新IO流&#xff0c;最后可以劫持程序流或者通过和setcontext来打配合来进行栈迁移来得到flag。 我们看看触发的源码 #if IS_IN (libc) #ifndef NDEBUG # define __assert_fail(assertion, fi…

MFC之CString类及其成员函数用法详解

CString是 CStringT(属于MFC 和 ATL 之间共享的类) 的类模板的专用化&#xff0c;没有基类。在头文件atlstr.h中可以看到CString的定义&#xff1a; CString对象由可变长度的一队字符组成。CString是基于TCHAR数据类型的对象。如果在你的程序中定义了符号_UNICODE&#xff0c;则…

Leetcode 300. 最长递增子序列 记忆化搜索、贪心二分 C++实现

Leetcode 300. 最长递增子序列 问题&#xff1a;给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是…

猫头虎推荐:2024国内好用的PyPIP换源库

猫头虎推荐&#xff1a;2024国内好用的PyPIP换源库&#x1f525;&#x1f680; 在国内使用 Python 时&#xff0c;由于访问官方的 PyPI 速度较慢甚至无法连接&#xff0c;选择一个可靠的国内 PyPI 镜像源至关重要&#x1f4c8;。为了更高效地完成项目开发&#xff0c;今天猫头…

BC172 牛牛的排列数(c 语言)

1.我们先输入n m的数字&#xff0c;因为n!/(n-m)!的阶乘。即4&#xff01;4*3*2*1&#xff0c;2&#xff01;2*1&#xff0c;4&#xff01;/2&#xff01;12.或者4&#xff01;4*3*2&#xff01;。 #include<sdtio.h> int main() {int n 0;int m 0;long long a 1;whi…

Leetcode面试经典150题-55.跳跃游戏

解法都在代码里&#xff0c;不懂就留言或者私信 class Solution {public boolean canJump(int[] nums) {/**如果就一个位置&#xff0c;你本来就在这&#xff0c;肯定可以跳到*/if(nums.length 1) {return true;}/**这个题的解题思路是遍历数组&#xff0c;如果当前位置不在之…

Linux网络——从《计算机网络》到网络编程

文章目录 从《计算机网络》到网络编程从计算机到计算机网络解决问题网络与计算机系统计算机网络的传输流程IP地址与MAC地址 从《计算机网络》到网络编程 科班的同学大多学过计算机网络&#xff0c;而非科班的同学也多多少少听说过一些 计算机网络体系十分繁杂且精妙&#xff…

毕业论文任务书怎么写?超详细指导带你轻松搞定!

AIPaperGPT&#xff0c;论文写作神器~ https://www.aipapergpt.com/ 毕业论文任务书是毕业论文的“指路明灯”&#xff0c;是论文写作的路线规划。很多同学把毕业论文任务书当作形式化的文件草草了事&#xff0c;其实不然。任务书不仅是你整个论文写作的起点&#xff0c;也是确…

艺术体操与骑行的完美协奏:维乐Angel Rise+坐垫,激情与力量的展现!

在艺术体操的赛场上&#xff0c;每一次旋转、每一次跳跃&#xff0c;都凝聚着运动员的力量与技巧。这不仅是一场速度与激情的碰撞&#xff0c;更是一次力量与技巧的交融。正如在骑行的领域里&#xff0c;VELO Angel Rise坐垫以它独特的一体成型设计和技术&#xff0c;为骑行者们…

【论文分享精炼版】 sNPU: Trusted Execution Environments on Integrated NPUs

今天在COMPASS分享了之前写的一个博客&#xff0c;做了进一步的提炼总结&#xff0c;大家可以看看原文~ 今天分享的论文《sNPU: Trusted Execution Environments on Integrated NPUs》来自2024年ISCA&#xff0c;共同一作为Erhu Feng以及Dahu Feng。并且&#xff0c; 这两位作…

《逆水寒手游》在苹果官网亮眼,国产武术游戏激起海外玩家热情

易采游戏网9月10日消息&#xff1a;《逆水寒手游》自上线以来&#xff0c;以其精致的画面、引人入胜的剧情以及创新的玩法&#xff0c;迅速在国内外游戏市场中占据一席之地。如今&#xff0c;这款备受期待的手游更是亮相全球科技巨头苹果公司iPhone16Pro的官网&#xff0c;为全…

lunix磁盘IO await until问题实战排查-实用命令集合

1、Linux查看磁盘读写次数 iostat -x 1 这个命令可以查询磁盘当前平均读写的次数、读写&#xff0c;以及是否await util严重。 2、查看磁盘TPS和读写数据量大小 iostat -d -k 1 10 这个命令可以查看磁盘的tps和读写数据量大小。 -d&#xff1a;显示某块具体硬盘&#x…

已知两圆的圆心半径,求交点坐标——CAD VBA 解决

如下图&#xff0c; dwg图中若干图形&#xff0c;运行代码后提示选择两个圆&#xff0c;然后判断两个圆位置关系和相交点坐标: 本例难点在于通过几何知识求出交点坐标。 几何背景 假设有两个圆&#xff1a; - 圆1&#xff1a;圆心 ( O_1(x_1, y_1) )&#xff0c;半径 ( r_1 ) …

关于支付宝小程序多规格选项的时候点击不起反应的原因分析及修改方法

解决方案&#xff1a; watch的时候&#xff0c;对于对象的赋值&#xff0c;最好用深拷贝&#xff0c;即如下图&#xff1a; watch:{ row: function (nv, ov) {var that this;that.indata.row JSON.parse(JSON.stringify(nv));//如果是对象&#xff0c;请用深入的for (va…

《使用 LangChain 进行大模型应用开发》学习笔记(二)

前言 本文是 Harrison Chase &#xff08;LangChain 创建者&#xff09;和吴恩达&#xff08;Andrew Ng&#xff09;的视频课程《LangChain for LLM Application Development》&#xff08;使用 LangChain 进行大模型应用开发&#xff09;的学习笔记。由于原课程为全英文视频课…

ReLU再进化ReLUMax:自动驾驶的瞬态容错语义分割

ReLU再进化ReLUMax&#xff1a;自动驾驶的瞬态容错语义分割 Abstract 度学习模型在自动驾驶感知中至关重要&#xff0c;但其可靠性面临着算法限制和硬件故障的挑战。我们通过研究语义分割模型的容错性来应对后者。使用已有的硬件故障模型&#xff0c;我们在准确性和不确定性方…