爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7546|回复: 16

LegendScheme如何实现粗细线的间隔渲染及线型的设置?

[复制链接]

新浪微博达人勋

发表于 2013-3-7 19:49:55 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
在arcengine当中,对线图层可以使用uniquevaluerender,这样每根线都可以自定义颜色、粗细、线型。meteoinfo的LegendScheme可以实现这一功能么?是不是好象只能对颜色进行设置啊?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-7 20:25:04 | 显示全部楼层
可以实现,做二次开发前最好用用MeteoInfo桌面软件,了解其功能。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-3-7 21:19:36 | 显示全部楼层
很强大,等值线每一条都可以单独渲染。开始只是看meteoinfo的帮助,以为没有。王老师,具体代码是怎么样的?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-7 21:26:31 | 显示全部楼层

这个讨论过很多了,你多看看之前的帖子,可以利用论坛的搜索功能,比如用关键词LegendScheme搜索。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-3-9 11:17:05 | 显示全部楼层
LegendScheme应该没有办法修改。查了下,是不是LengdView是修改这个的类,但不知道如何使用,王老师有示例代码么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-9 11:23:30 | 显示全部楼层
tinysand 发表于 2013-3-9 11:17
LegendScheme应该没有办法修改。查了下,是不是LengdView是修改这个的类,但不知道如何使用,王老师有示例代 ...

当然可以修改,不知道你搜索了没有,比图:LegendScheme aLS参数问题
http://bbs.06climate.com/forum.p ... 928&fromuid=106

脚本程序中编辑图例LegendScheme
http://bbs.06climate.com/forum.p ... 911&fromuid=106
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-3-9 12:54:13 | 显示全部楼层
搜索了,不合要求。比如在一个线图层中,某一根线渲染的时候加粗,线型是虚线,其余的用细实线渲染。在meteoiinfo软件中可以实现这些功能。但采用meteoinfoc.dll 库时不知道是怎样实现。

LegendManage::CreateUniqValueLegendScheme 参数中

List<string> CValues,   应该是等值线的值
        Color[] colors,    应该是等值线的颜色
        ShapeTypes aST,   类型
        double min,        最小值
        double max,       最大值
        bool hasNodata, 有否空值
        double unDef     空值值

没有见在线型、线粗的接口
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-9 13:20:00 | 显示全部楼层
tinysand 发表于 2013-3-9 12:54
搜索了,不合要求。比如在一个线图层中,某一根线渲染的时候加粗,线型是虚线,其余的用细实线渲染。在mete ...

LegendScheme中最重要的属性是LegendBreaks,是所有ColorBreak的集合,ColorBreak只是一个基类,如果线图层,就是PolylineBreak,你想做的是对每个PolylineBreak进行设置,具体可以参考MeteoInfo类库的帮助文档,或者在VS里浏览类库的内容。这个帖子也可以参考(虽然是脚本程序,思路是一样的):MeteoInfo脚本示例:台风
http://bbs.06climate.com/forum.p ... 159&fromuid=106
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-3-9 16:38:20 | 显示全部楼层
本帖最后由 tinysand 于 2013-3-9 17:35 编辑

LegendScheme中有 LegendBreaks属性,只是meteoinfo的类库帮助文件中没有,好得好好去看看。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-3-9 23:10:19 | 显示全部楼层
王老师,学生愚钝,脚本的代码
for legend in pLayer.LegendScheme.LegendBreaks:
        legend.MarkerType = MarkerType.Character
        legend.FontName = "Weather"
        legend.CharIndex = 170
        legend.Size = 12
如何改成c#的啊,c#中pLayer.LegendScheme.LegendBreaks为 List<ColorBreak>类型,强制转换不行啊。PolylineBreak继承自ColorBreak, 如何做呢?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表