爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3492|回复: 9

掩膜怎么用?

[复制链接]

新浪微博达人勋

发表于 2015-1-29 11:58:40 | 显示全部楼层 |阅读模式

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

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

x
用PolygonShape和PolygonBreak画出来面,怎么使用掩膜让除河南省以外的不显示???
//掩膜
        private void TSMI_Maskout()
        {
            layersLegend1.ActiveMapFrame.MapView.MaskOut.SetMaskLayer = true;
            layersLegend1.ActiveMapFrame.MapView.MaskOut.MaskLayer = "Henan_city.shp";
            layersLegend1.ActiveMapFrame.MapView.PaintLayers();
        }
该怎么放?
11111111111111.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-1-29 12:51:06 | 显示全部楼层
MaskLayer必须是Polygon图层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-1-29 12:57:04 | 显示全部楼层
那该如何设置只显示河南版图之内的?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-1-29 13:42:20 | 显示全部楼层
deng 发表于 2015-1-29 12:57
那该如何设置只显示河南版图之内的?

用河南省的Polygon图层呀
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-1-29 15:15:00 | 显示全部楼层
能不能具体解释一下,代码该怎么弄?不太明白!!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-1-29 16:02:05 | 显示全部楼层
deng 发表于 2015-1-29 15:15
能不能具体解释一下,代码该怎么弄?不太明白!!!

代码不是都已经有了吗,找一个合适的图层就可以了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-1-29 17:48:42 | 显示全部楼层
还想问一下,怎么把自己画上去的点线面生成图层?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-1-29 19:50:52 | 显示全部楼层
deng 发表于 2015-1-29 17:48
还想问一下,怎么把自己画上去的点线面生成图层?

参考此贴:http://bbs.06climate.com/forum.php?mod=viewthread&tid=18686
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-2-2 17:18:56 | 显示全部楼层
非常感谢楼主的指教,还有点不懂还望楼主不吝赐教,我按照上面脚本改成c#,代码
public VectorLayer addLary(Graphic g)
        {
            VectorLayer pLayer = new VectorLayer(ShapeTypes.Polygon);
            pLayer.LayerName = "rrrr";
            pLayer.Visible = true;
            
            pLayer.EditAddField("ID", typeof(double));
            layersLegend1.ActiveMapFrame.MapView.GraphicCollection.GraphicList.Add(g);
            Graphic pGraphic = layersLegend1.ActiveMapFrame.MapView.GraphicCollection.GraphicList[0];
           
            Shape pShape = pGraphic.Shape;
            int shapeNum = pLayer.ShapeNum;
            int i = 1;
            if (pLayer.EditInsertShape(pShape, shapeNum))
            {
                pLayer.EditCellValue("ID", shapeNum, i);
               
            }
            i += 1;
            pLayer.UpdateLegendScheme(LegendType.SingleSymbol, "ID");
            PolygonBreak aPGB = (PolygonBreak)pLayer.LegendScheme.LegendBreaks[0];
            aPGB.Color = Color.FromArgb(10, Color.Red);
            layersLegend1.ActiveMapFrame.AddLayer(pLayer);
            return pLayer;
         }
在划线的方法里调用此方法却只能把第一个图形化成图层,剩余的却无法划出
画成图层的样子.png
画线出来的样子.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-2-2 17:20:58 | 显示全部楼层
deng 发表于 2015-2-2 17:18
非常感谢楼主的指教,还有点不懂还望楼主不吝赐教,我按照上面脚本改成c#,代码
public VectorLayer addL ...

需要对 layersLegend1.ActiveMapFrame.MapView.GraphicCollection.GraphicList做循环。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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