爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5709|回复: 10

只有maplayout可以显示图形么?

[复制链接]

新浪微博达人勋

发表于 2013-4-18 11:35:46 | 显示全部楼层 |阅读模式

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

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

x
我在窗体上只放了mapLayout1和layersLegend1,没有放mapview1,写了如下代码:
  1. MapLayer aLayer = MapDataManage.OpenLayer(app_PATH + @"..\..\..\App_data\Map\cnworld");
  2.             MapView mapview1 = new MapView();
  3.             mapLayout1.MapFrames[0].Active = true;
  4.             mapLayout1.MapFrames[0].MapView = mapview1 ;
  5.             layersLegend1.ActiveMapFrame.AddLayer(aLayer);                  
  6.             layersLegend1.Refresh();
  7.             layersLegend1.IsLayoutView = true;
  8.             mapLayout1.Refresh();
  9.             mapLayout1.MouseMode = MouseMode.Select;

但是图层显示不出来,请问王老师怎么解决?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-18 13:34:42 | 显示全部楼层
本帖最后由 MeteoInfo 于 2013-4-18 13:35 编辑

由于进行了双缓冲的设计,Refresh并不会重绘图层,试试 mapLayout1.PaintGraphics();
另外,要将MapLayout和LayersLegend相关联:  layersLegend1.MapLayout = mapLayout1;
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-18 15:11:47 | 显示全部楼层

谢老师,可以了。。。
再请教一下,如何让mapLayout1里面的图形自动填满整个控件区域,现在图形只占了控件的一小部分,还有就是怎么去掉图形边上的经纬度和刻度显示
如果要显示和自定义图例,是不是只能用mapLayout,mapview能实现么,感觉mapLayout有点复杂啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-18 15:49:17 | 显示全部楼层
vortexroc 发表于 2013-4-18 15:11
谢老师,可以了。。。
再请教一下,如何让mapLayout1里面的图形自动填满整个控件区域,现在图形只占了控 ...

MapLayout中的地图是LayoutMap类,获取该对象:
LayoutMap lm = mapLayout1.ActiveLayoutMap;
或者:
LayoutMap lm = mapLayout1.LayoutMaps[0];

设置其位置和尺寸属性,例如:
lm.Left = 100;
lm.Top = 100;
lm.Width = 600;
lm.Height = 500;
去掉刻度显示:
lm.DrawGridLabel = false;
多看看这些类的属性和方法,应该不难理解。

想要功能强大,就不可能很简单实现。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-19 00:30:12 | 显示全部楼层
MeteoInfo 发表于 2013-4-18 15:49
MapLayout中的地图是LayoutMap类,获取该对象:
LayoutMap lm = mapLayout1.ActiveLayoutMap;
或者:

谢老师,我再研究一下。。。
maplayout能实现像mapview那样的鼠标滚轮缩放地图么,还是说只能通过切换zoom in 和zoom out功能来缩放?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-19 09:23:11 | 显示全部楼层
vortexroc 发表于 2013-4-19 00:30
谢老师,我再研究一下。。。
maplayout能实现像mapview那样的鼠标滚轮缩放地图么,还是说只能通过切换zo ...

不支持滚轮缩放
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-19 11:59:01 | 显示全部楼层
MeteoInfo 发表于 2013-4-19 09:23
不支持滚轮缩放

再请教,怎么判断maplayout当前选择的是哪个图层,我用ActiveMapFrame的SelectedLayer,发现没用啊,以下代码:
MessageBox.Show(layersLegend1.ActiveMapFrame.SelectedLayer.ToString());
这样的代码,不管我点击哪个图层,显示的都是同一个数字
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-19 13:07:04 | 显示全部楼层
vortexroc 发表于 2013-4-19 11:59
再请教,怎么判断maplayout当前选择的是哪个图层,我用ActiveMapFrame的SelectedLayer,发现没用啊,以下 ...

ActiveMapFarme.MapView.SelectedLayer
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-19 18:21:09 | 显示全部楼层
MeteoInfo 发表于 2013-4-19 13:07
ActiveMapFarme.MapView.SelectedLayer

再请问一下,maplayout图是不是不能用SelectFeatures对多个点进行同时选择?
如果在一张图上既要显示图例,又要同时选择多个点进行修改,那么该怎么实现,貌似mapview和maplayout都只能实现其中的一部分,没法综合起来
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-19 22:00:28 | 显示全部楼层
vortexroc 发表于 2013-4-19 18:21
再请问一下,maplayout图是不是不能用SelectFeatures对多个点进行同时选择?
如果在一张图上既要显示图例 ...

如果觉得MapLayout不好用,可以用MapView,图例的显示可以自己来画(别问我怎么画呀)。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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