GEOSERVER显示图表(CHART)

GEOSERVER显示图表(CHART)

 

本节GEOSERVER 如何显示图表(CHART),分为个部分首先介绍原理及运行环境,其次是图表渲染的SLD内容说明,最后是程序如何配置。

1.1原理及运行环境

图表空间在展现按地域统计的数据时经常会用到,GEOSERVER通过安装一定插件也可以展示地图的图表效果。其原理是通过SLD对地图上的图元进行渲染。产生图表效果:

dFcBAAAAAAAA&bo=tQT2AQAAAAADAGM!

1.1.1运行环境:

apache-tomcat-7.0.63  32

JAVA 1.7.0_17  32

GEOSERVER  2.8

WIN8 64位中文版

 

1.1.2数据

GEOSERVER 自带的 topp:states 图层

1.2SLD渲染配置说明

1.2.1.1SLD内容及说明

<?xml version="1.0" encoding="GBK"?>

<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></Name>

    <UserStyle>

      <Name>Pie charts</Name>

      <FeatureTypeStyle> 

        <Rule>

          <PolygonSymbolizer> 图层区域对象的渲染,背景填充等

            <Fill>

              <CssParameter name="fill">#FFFFF0</CssParameter>

            </Fill>

            <Stroke />

          </PolygonSymbolizer>

        </Rule>

      </FeatureTypeStyle>

      <FeatureTypeStyle>

        <Rule>

          <PointSymbolizer> 饼图的渲染内容

            <Geometry>

              <ogc:Function name="centroid"> 饼图位置为区域的质心

                <ogc:PropertyName>the_geom</ogc:PropertyName>

              </ogc:Function>

            </Geometry>

            <Graphic>

              <ExternalGraphic>

                <OnlineResource

                  xlink:href="http://chart?cht=p&amp;chf=bg,s,FFF1F000&amp;chd=t:${100 * MALE / PERSONS},${100 * FEMALE / PERSONS}&amp;chl=男|女&amp;chs=200x100&amp;chco=0000ff,ff0000" />

饼图的效果(cht饼图的3D效果,chf背景颜色,chd饼图的切分比例,chl饼图标注,chs饼图大小带上标注的大小,chco饼图颜色

                <Format>application/chart</Format>

              </ExternalGraphic>

              <Size>不带标注时,饼图的大小。前面chs设置的是饼图整个的大小(长和宽,都以像素为单位)。

                <ogc:Add> 这里是个计算表达式的配置,根据字段配置饼图的大小,图表大小(不算标注)=20 + (PERSONS / 20,000,000) * 60.

                  <ogc:Literal>80</ogc:Literal> 

                  <ogc:Mul>

                    <ogc:Div>

                      <ogc:PropertyName>PERSONS</ogc:PropertyName>

                      <ogc:Literal>20000000.0</ogc:Literal>

                    </ogc:Div>

                    <ogc:Literal>60</ogc:Literal>

                  </ogc:Mul>

                </ogc:Add>

              </Size>

            </Graphic>

          </PointSymbolizer>

        </Rule>

      </FeatureTypeStyle>

    </UserStyle>

  </NamedLayer>

</StyledLayerDescriptor>

1.2.2注意事项

1.饼图比例是以百分比来标示的,如80,20;70,20,10;

2.${100 * MALE / PERSONS},${100 * FEMALE / PERSONS} 是计算表达式,其中MALE,PERSONS,FEMALE都取得是图层字段里的值

3.XML encoding 设置为 "GBK" UTF-8不行否则汉字内容显示为乱码

4.颜色设置为 RRGGBBAA 也就是RGB加 Alpha分量表示透明度

1.3配置安装

我没有用下载GEOSERVER的安装包,直接用我自己通过编译环境打包的WAR包,部署到TOMCAT环境中。如果需要我可以提供我编译的WAR包,感觉更稳定些。

一定注意:GEOSERVER默认是不带CHART的扩展插件的,需要自己安装,对应版本也是2.8的,具体做法是拷贝插件到webapps\geoserver\WEB-INF\lib目录下。重新启动.插件我已经下载,在附件中有提供

实现步骤

打开GEOSERVER工作面板

打开SYLE编辑功能,添加一个新的STYLE

dFoBAAAAAAAA&bo=WwNfAgAAAAADACA!编辑验证,保存(将我附件提供的SLD粘贴到编辑器保存即可)

回到主面板点图层(管理)

 

dFgBAAAAAAAA&bo=RwMxAAAAAAADAFA!

点 STATE进入图层设置。

dFkBAAAAAAAA&bo=3wI6AgAAAAADAMA!

进入图层设置,点发布

将DEFAULTSTYLE设置为添加的STYLE PIECHART,保存设置。

dFcBAAAAAAAA&bo=mgMtAgAAAAADAJM!

 

 

dFoBAAAAAAAA&bo=KgI4AQAAAAADADQ!

点图层预览

dFkBAAAAAAAA&bo=dAMQAQAAAAADAEM!

选择OPENLAYERS,效果如下:

dFgBAAAAAAAA&bo=*wJLAQAAAAADAJI!

注意:用OPENLAYERS查看结果时经常出现修改了SLD内容,结果不能立即体现的现象,原因是GEOSERVER集成了GWC的缓存机制,需要清除缓存内容,位置在GEOSERVER数据存储目录下的/gwc-layers目录

 


本文出自 “开源GIS平台” 博客,请务必保留此出处http://osgis.blog.51cto.com/10026717/1749984

转载于:https://my.oschina.net/GISMAN/blog/779027

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值