当前位置:软件学习 > 其它软件 >>

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>
内没有这些属性?
补充:企业软件 ,  地理信息系统
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,