geoserver 关于点样式的解决方案
目前做一个工程,希望数据库的1个点在地图中呈现许多属性,需要点根据数据库的坐标做点的偏移处理,查过很多资料,不知道点样式到底能不能实现偏移。 以下是一段 文字标签的偏移代码,既然文字可以做到便宜,我想点也可以吧? 请高手指教<TextSymbolizer>
<Label>
<ogc:PropertyName>NAME</ogc:PropertyName>
</Label>
<Font>
<CssParameter name="font-size">
<ogc:Literal>12.0</ogc:Literal>
</CssParameter>
<CssParameter name="font-style">
<ogc:Literal>normal</ogc:Literal>
</CssParameter>
<CssParameter name="font-weight">
<ogc:Literal>normal</ogc:Literal>
</CssParameter>
</Font>
<LabelPlacement>
<PointPlacement>
<AnchorPoint>
<AnchorPointX>
<ogc:Literal>0.0</ogc:Literal>
</AnchorPointX>
<AnchorPointY>
<ogc:Literal>0.0</ogc:Literal>
</AnchorPointY>
</AnchorPoint>
<Displacement>
<DisplacementX>
<ogc:Literal>0</ogc:Literal>
</DisplacementX>
<DisplacementY>
<ogc:Literal>0</ogc:Literal>
</DisplacementY>
</Displacement>
<Rotation>
<ogc:Literal>0.0</ogc:Literal>
</Rotation>
</PointPlacement>
</LabelPlacement>
<Fill>
<CssParameter name="fill">
<ogc:Literal>#000000</ogc:Literal>
</CssParameter>
<CssParameter name="fill-opacity">
<ogc:Literal>1.0</ogc:Literal>
</CssParameter>
</Fill>
<VendorOption name="spaceAround">2</VendorOption>
</TextSymbolizer>
--------------------编程问答-------------------- 改动后得到的XML如下:(主要是把ogc:Literal这样的表述改成了ogc_Literal)
<?xml version='1.0' encoding='ISO-8859-1' ?>
<TextSymbolizer> <!--根定义-->
<Label>
<ogc_PropertyName>NAME </ogc_PropertyName> <!--名称-->
</Label>
<Font> <!--字体-->
<CssParameter name="font-size"> <!--字体大小-->
<ogc_Literal>12.0 </ogc_Literal>
</CssParameter>
<CssParameter name="font-style"> <!--字体名称-->
<ogc_Literal>normal </ogc_Literal>
</CssParameter>
<CssParameter name="font-weight"> <!--字体粗细-->
<ogc_Literal>normal </ogc_Literal>
</CssParameter>
</Font>
<LabelPlacement> <!--标注位置信息 >> 我想楼主要实现的偏移主要是这个属性下的内容改动-->
<!--一个标注应该由下面的锚点和显示位置来确定,锚点估计应该指的是标注要表示的物易做图置-->
<!--而显示位置则表示的是文本要显示在哪里,如果锚点为(0,0);显示点位(2,2)则说明标注-->
<!--相对于要标注的物体产生了X轴2 Y轴2的偏移-->
<PointPlacement>
<AnchorPoint> <!--锚点位置?-->
<AnchorPointX> <!--锚点X坐标?-->
<ogc_Literal>0.0 </ogc_Literal>
</AnchorPointX>
<AnchorPointY> <!--锚点Y坐标?-->
<ogc_Literal>0.0 </ogc_Literal>
</AnchorPointY>
</AnchorPoint>
<Displacement> <!--标注显示位置?-->
<DisplacementX> <!--标注显示的X坐标?-->
<ogc_Literal>0 </ogc_Literal>
</DisplacementX>
<DisplacementY> <!--标注显示的X坐标?-->
<ogc_Literal>0 </ogc_Literal>
</DisplacementY>
</Displacement>
<Rotation> <!--标注旋转属性-->
<ogc_Literal>0.0 </ogc_Literal>
</Rotation>
</PointPlacement>
</LabelPlacement>
<Fill> <!--填充-->
<CssParameter name="fill"> <!--填充颜色值?-->
<ogc_Literal>#000000 </ogc_Literal>
</CssParameter>
<CssParameter name="fill-opacity"> <!--填充饱和度??-->
<ogc_Literal>1.0 </ogc_Literal>
</CssParameter>
</Fill>
<VendorOption name="spaceAround">2 </VendorOption>
</TextSymbolizer>
楼主用把上面的代码用记事本保存成XML
XML其实很简单 稍微一查就知道它要表示的意思了。 希望能有所帮助. --------------------编程问答-------------------- 查下sld规范.
02-070_Styled_Layer_Descriptor_Implementation_Specification.pdf
在OGC的网站去下.
我也正在找控制点坐标的方法.不过这段时间没空.查到了,别忘了共享一下.
而且还想实现点坐标的分级显示问题.象文字标签一样,应用
<VendorOption name="spaceAround">5</VendorOption><!--实现间距/疏密控制-->
<!-- 实现文字标签的简单分级控制 -->
<sld:Priority>
<ogc:PropertyName>popul</ogc:PropertyName>
</sld:Priority>
大概看了下那份规范,似乎在<sld:PointSymbolizer>...</sld:PointSymbolizer>
内没有这些属性?
补充:企业软件 , 地理信息系统