geoserver自定义style渲染航道数据

好久没有分享所学了,近来无事,且把自认为效果不错的一项应用分享予大家。废话不多说,先上效果图

工具:geoserver,openlayers3,postgis,sld,style

应用:利用postgis将线状数据导入postgressql,再用geoserver添加图层发布,配上自定义style,最后叠加天地图。

步骤:

1、postgis导入shapefile文件,首先shapefile文件路径不能有中文,否则导入不成功,添加数据库连接并成功后即可导入,导入成功后在数据库即可看到相应表。

2、geoserver新建style,图层发布可参考https://www.cnblogs.com/s313139232/p/9316650.html,sld语法学习可参考https://www.cnblogs.com/naaoveGIS/p/4176198.html,本应用sld代码如下

<?xml version=”1.0″ encoding=”ISO-8859-1″?>
<StyledLayerDescriptor version=”1.0.0″
  xsi:schemaLocation=”http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd”
  xmlns=”http://www.opengis.net/sld” xmlns:ogc=”http://www.opengis.net/ogc”
  xmlns:xlink=”http://www.w3.org/1999/xlink” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>

  <NamedLayer>
    <Name>res_central_line</Name>
    <UserStyle>
      <Title>A teal line style</Title>
      <FeatureTypeStyle>
        <Rule>
          <Name>name</Name>
          <Title>teal line</Title>
          <ogc:Filter>

            <ogc:PropertyIsEqualTo>

              <ogc:PropertyName>id</ogc:PropertyName>

              <ogc:Literal>ccb91c66-9f09-4128-817a-509f27c87c15</ogc:Literal>

            </ogc:PropertyIsEqualTo>

          </ogc:Filter>
          <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#1F1F1F</CssParameter>
              <CssParameter name=”stroke-width”>10</CssParameter> 
            </Stroke>
          </LineSymbolizer>
           
          <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#00BFFF</CssParameter>
              <CssParameter name=”stroke-width”>8</CssParameter>
            </Stroke>
          </LineSymbolizer> 
           <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#003333</CssParameter>
              <CssParameter name=”stroke-dasharray”>8 8</CssParameter>
              <CssParameter name=”stroke-width”>1</CssParameter>
            </Stroke>
          </LineSymbolizer> 
        </Rule>
<Rule>
          <Name>name</Name>
          <Title>teal line</Title>
          <ogc:Filter>

            <ogc:PropertyIsEqualTo>

              <ogc:PropertyName>id</ogc:PropertyName>

              <ogc:Literal>2af8ef95-59c8-4d49-ada5-750b24557768</ogc:Literal>

            </ogc:PropertyIsEqualTo>

          </ogc:Filter>
          <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#1F1F1F</CssParameter>
              <CssParameter name=”stroke-width”>10</CssParameter> 
            </Stroke>
          </LineSymbolizer>
           
          <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#8B7355</CssParameter>
              <CssParameter name=”stroke-width”>8</CssParameter>
            </Stroke>
          </LineSymbolizer> 
           <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#003333</CssParameter>
              <CssParameter name=”stroke-dasharray”>8 8</CssParameter>
              <CssParameter name=”stroke-width”>1</CssParameter>
            </Stroke>
          </LineSymbolizer> 
        </Rule>
        <Rule>
          <Name>name</Name>
          <Title>teal line</Title>
          <ogc:Filter>

            <ogc:PropertyIsEqualTo>

              <ogc:PropertyName>id</ogc:PropertyName>

              <ogc:Literal>44139e9d-f443-4fb8-b0ec-6d9743f7f6b9</ogc:Literal>

            </ogc:PropertyIsEqualTo>

          </ogc:Filter>
          <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#1F1F1F</CssParameter>
              <CssParameter name=”stroke-width”>10</CssParameter> 
            </Stroke>
          </LineSymbolizer>
           
          <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#F87A2F</CssParameter>
              <CssParameter name=”stroke-width”>8</CssParameter>
            </Stroke>
          </LineSymbolizer> 
           <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#003333</CssParameter>
              <CssParameter name=”stroke-dasharray”>8 8</CssParameter>
              <CssParameter name=”stroke-width”>1</CssParameter>
            </Stroke>
          </LineSymbolizer> 
        </Rule>
        <Rule>
          <Name>name</Name>
          <Title>teal line</Title>
          <ogc:Filter>

            <ogc:PropertyIsEqualTo>

              <ogc:PropertyName>id</ogc:PropertyName>

              <ogc:Literal>57bd9cb9-2548-45fd-a985-79fd30884c51</ogc:Literal>

            </ogc:PropertyIsEqualTo>

          </ogc:Filter>
          <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#1F1F1F</CssParameter>
              <CssParameter name=”stroke-width”>10</CssParameter> 
            </Stroke>
          </LineSymbolizer>
           
          <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#00EE55</CssParameter>
              <CssParameter name=”stroke-width”>8</CssParameter>
            </Stroke>
          </LineSymbolizer> 
           <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#003333</CssParameter>
              <CssParameter name=”stroke-dasharray”>8 8</CssParameter>
              <CssParameter name=”stroke-width”>1</CssParameter>
            </Stroke>
          </LineSymbolizer> 
        </Rule>
        <Rule>
          <Name>name</Name>
          <Title>teal line</Title>
          <ogc:Filter>

            <ogc:PropertyIsEqualTo>

              <ogc:PropertyName>id</ogc:PropertyName>

              <ogc:Literal>6830b5de-b2cd-4b8c-80f5-dc5206d79a21</ogc:Literal>

            </ogc:PropertyIsEqualTo>

          </ogc:Filter>
          <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#1F1F1F</CssParameter>
              <CssParameter name=”stroke-width”>10</CssParameter> 
            </Stroke>
          </LineSymbolizer>
           
          <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#0022FF</CssParameter>
              <CssParameter name=”stroke-width”>8</CssParameter>
            </Stroke>
          </LineSymbolizer> 
           <LineSymbolizer>
            <Stroke>
              <CssParameter name=”stroke”>#003333</CssParameter>
              <CssParameter name=”stroke-dasharray”>8 8</CssParameter>
              <CssParameter name=”stroke-width”>1</CssParameter>
            </Stroke>
          </LineSymbolizer> 
        </Rule>
      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>
 

转载自:https://blog.csdn.net/random720/article/details/88894033

You may also like...