GeoServer中一个shape发布多个图层时出现调用空白的问题及解决办法

最近一个项目要用GeoServer,匆忙上手就用,遇到了很多可能出人意料的问题,“用一个shape文件发布多个图层时出现openlayers调用显示空白的问题“就是其中一个,百思不得其解,到GeoServer中文社区遍查贴子,GeoServer.org中扫完UserManual,花了一天半时间,也没有找到答案,中午趴着眯会儿时忍不住还在想,到处都没有相关资料,肯定不是一个常规问题,于是静下心来想,发布一个图层的几个关键环节和服务渲染的原理,工作区->数据存储->(图层+样式+……),一个数据按理说一定可以支持发布多个图层,图层在server端将一个数据用不同的样式渲染后,存到不同的文件夹中传回到客户端,应该也不会有问题,后来几乎是同时,公司一个技术资深的大牛和我都想到了问题出在了样式,事实
上果真如此!!。

1、要明白这个问题所在,必须先理解样式文件结构:

其中有关键的两个Name,SLD:Name是样式的名称,SLD:FeatureTypeName是样式所应用的图层名称,之前一直不能出图,就是发布图层的名称和所用样式中名称不对应所引起的,样式应用后图层与样式中规定图层名称不匹配,(居然也不报错,难道也是弱类型,,,)

2、问题重现

服务发布的名称为jzmd,U_JZMD样式中的FeatureTypeName是grid200_avg2,jzmd图层发布的时候指定样式为U_JZMD。

发布后openlayers浏览的效果如下:

3、问题解决

修改U_JZMD样式中的FeatureTypeName的值为jzmd

提交后再浏览:

4、总结

开源产品上手由于是英文多,资料少,相对确实是难一点,但是切记,遇到问题一定要动脑筋多从原理上思考,解决办法总是多于问题。

时间: 2024-10-10 15:45:40

GeoServer中一个shape发布多个图层时出现调用空白的问题及解决办法的相关文章

在angular中一个页面滚动后,打开新页面不在最顶部的解决办法

解决办法:使用$anchorScroll 找到当前页面的controller,在开头中加入以下部分代码,如图所示: $anchorScroll的剩余用法请参考官方文档: https://docs.angularjs.org/api/ng/service/$anchorScroll 原文地址:https://www.cnblogs.com/cnliang/p/10273583.html

向SDE图层中添加大量数据时,出现ORA-00604以及ORA-01000的解决办法

转自原文 向SDE图层中添加大量数据时,出现ORA-00604以及ORA-01000的解决办法 写了一个小程序,从一个列表中读取坐标串,每个坐标串生成一个IPolygon,然后将这些Polygon添加到一个SDE图层中, 向SDE中添加要素的初始代码类似下面: IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)workspace; workspaceEdit.StartEditing(true); workspaceEdit.StartEditOper

您配置文件中的设置 (空密码的 root) 与 MySQL 默认管理员账户对应...的解决办法

您配置文件中的设置 (空密码的 root) 与 MySQL 默认管理员账户对应.……解决办法很简单:1.修改[email protected]权限的密码. 打开wamp的phpmyadmin,进入它的管理界面,点击权限,这时页面上会显示一张用户权限表,找到用户为: root.主机为:localhost的数据行,点击后面的修改按钮,弹出详细的权限配置页面,找到里面的修改密码项, 两次输入你想修改的密码后,点击执行就完成了数据库中[email protected]权限的密码修改.2.修改phpmya

想要隐藏掉gridview中的某一列,但是还想要使用该列数据解决办法。

试过visable=“false”  只能隐藏掉数据,但是访问的时候变成“”了.即无法使用.后来改变使用了模版列可以达到想要的效果.可以隐藏,可以访问. aspx页面: <asp:TemplateField Visible="false">                    <ItemTemplate>                        <asp:label ID="lbdefault" runat="serv

GeoServer中利用SLD配图之矢量图层配图

1 背景 我们在ArcMap中可以直接通过symbol功能对图层进行定制化配图.但是,如果我们将配好图的shp图层在GeoServer中发布时,会发现图层样式完全丢失了.其实原因很简单,用ArcMap配好的图层,其样式文件并不是保存在shp中,而是保存在mxd或者msd中. 那么如何才能让GeoServer发布的图层也能达到定制化配图的效果呢? 2 SLD简介 SLD是风格化图层描述器(Styled Layer Descriptor)的简称,是2005年OGC提出的一个标准,这个标准在一定条件下

在cad中出现“代理对象不允许复制 因此写块操作被拒绝”的解决办法

网上找到的解决办法是这个 经测试,方法是有效的, 不过是要在当前打开的dwg中“编辑---复制链接”,然后在新建打开的dwg中“编辑---原坐标粘贴”后保存, 如此这般问题才全部解决,可以完美使用(command “.wblock” ........)命令... -------------------- 另附今天遇到这问题的分图层输出文件autolisp代码,抄的基础上修改的,可以新建文件夹再保存各图层文件,哈哈 (vl-load-com) ;按层存文件 明经 ZZXXQQ 2011.1.6 ,

gridview中单元格button的点击事件和onitemclick点击冲突及解决办法

如果是listview的onitemclick的点击事件与子button的点击事件冲突,很多人都知道通过对listview设置android:descendantFocusability="blocksDescendants",以及对button设置android:focus="false",来屏蔽button的焦点以及点击事件从而解决冲突.然而不幸的是,本人今天对类似的gridview设置此项属性,亲测并没有什么用. 解决办法是有的,例如把button改为text

iOS程序发布时出现your application is being uploaded解决办法

当用Xcode发布app时候出现"your application is being uploaded"或者用Application Loader 一直出现" 正在通过ITUNES STORE进行鉴定"的解决办法 一:此错误会导致上传程序,一直停留在验证阶段,而没有一点上传进度:结果会苦等半天,无果: 二:修复此错误注意点 如上图:注意,选择的target, 里面的Distribution 里面的 设置

子div块中设置margin-top时影响父div块位置的解决办法

在css中设置样式时,通常会遇到用子div块margin中设置margin-top时,父div块中就会随着子div的margin-top,也会和子div执行相同的margin-top的位置样式 解决办法1: 若子div块中使用margin-top,则在父div块中添加:overflow:hidden; 解决办法2: 若由于特殊情况不能在父div块中添加:overflow:hidden,那么在子div块中用padding-top代替margin-top;