爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: MeteoInfo

MeteoInfo二次开发教程(三)

[复制链接]

新浪微博达人勋

发表于 2013-9-10 15:30:22 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-1-4 00:41:59 | 显示全部楼层
我想让窗体初始化的时候显示的地图填满整个窗口,而不是像图中这样怎么办呢?
C:\Users\Administrator\Desktop\QQ截图20140104002441.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-1-4 00:43:44 | 显示全部楼层
额,上个图发失败了,补个图
QQ截图20140104002441.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-1-4 00:48:29 | 显示全部楼层
还有个问题:当我用自己的地图加载的时候(删除了river和citys图层),我的工具栏的TSB_FullExtent按钮失效了,单击后地图完全没变化。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-1-4 17:18:37 | 显示全部楼层
林宝宝 发表于 2014-1-4 00:43
额,上个图发失败了,补个图

教程代码里有,用MapView的ZoomToExtent方法。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-1-4 21:19:42 | 显示全部楼层
谢谢王老师
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-20 09:54:06 | 显示全部楼层
继续第三课
       因为不懂gis,所以代码都是一小段一小段的敲,敲一小段就运行一次,慢慢去揣摩理解,有没有相关gis的参考、注释之类的提供
       说下这一课吧,添加国家和河流图层时,都没有问题,就是在添加city时,出错说是要添加wContour引用,教程(三)包括回复我
翻了三遍,有两个同学遇到相同问题,一个通过添加引用解决,一个在Map文件夹下拷贝rivers.shp文件解决;我的Map文件夹下文件是
全的,最后通过添加wContour解决,不知道会不会在以后的课程学习会不会因为引用了wContour出问题,先把这一课做了,把情况说
明一下,以后有问题再请教。

3.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-6-8 09:27:17 | 显示全部楼层
学第一遍的时候只是快速按照课程学习,加之MeotoInfo软件也没有用过,好多东西没有仔细鼓捣,现在重学,也在慢慢熟悉MetoInfo软件,说下这一讲碰到的问题
1、在设置城市(点)的大小和颜色时(DEMO中只是对颜色进行了设置),设置了size属性后,color会被无效化,我的代码
   aFile = Application.StartupPath + @"\Map\CITIES.SHP";
            aLayer = MapDataManage.OpenLayer(aFile);
            ((PointBreak)aLayer.LegendScheme.LegendBreaks[0]).Color = Color.Red;
            ((PointBreak)aLayer.LegendScheme.LegendBreaks[0]).Size = 2;
            aLayer.Expanded = true;
            layersLegend1.ActiveMapFrame.AddLayer(aLayer);
2、是有关地图加载时显示的问题,不设置图形显示中心,地图不会在程序加载时第一时间显示,而是要用鼠标拖动一下地图或是切换至Layout页才能显示,也就是缺少下面语句时出现的
mapView1.ZoomToExtentLonLat(70, 140, 10,40 );

无图无真相,上图直接运行程序,显示空白
1.jpg
点击Layout切换后,或是用鼠标拖动地图,显示如下
2.jpg


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-2-11 15:26:25 | 显示全部楼层
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MeteoInfoC;
using MeteoInfoC.Layer;
using MeteoInfoC.Data;
using MeteoInfoC.Data.MapData;
using MeteoInfoC.Data.MeteoData;
using MeteoInfoC.Map;
using MeteoInfoC.Layout;
using MeteoInfoC.Global;
using MeteoInfoC.Legend;
using MeteoInfoC.Shape;
using MeteoInfoC.Drawing;
using MeteoInfoC.Projections;

namespace fy_2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void LoadLayers()
        {
            layersLegend1.ActiveMapFrame.MapView.LockViewUpdate = true;

            //Load country layer
            string aFile = Application.StartupPath + "\\Map\\country1.shp";
            MapLayer aLayer = MapDataManage.OpenLayer(aFile);
            aLayer.LegendScheme.LegendBreaks[0].Color = Color.WhiteSmoke;
            layersLegend1.ActiveMapFrame.AddLayer(aLayer);

            //Load river layer
            aFile = Application.StartupPath + "\\Map\\rivers.shp";
            aLayer = MapDataManage.OpenLayer(aFile);
            aLayer.LegendScheme.LegendBreaks[0].Color = Color.Aqua;
            ((PolyLineBreak)aLayer.LegendScheme.LegendBreaks[0]).Size = 2;
            layersLegend1.ActiveMapFrame.AddLayer(aLayer);

            //Load city layer
            aFile = Application.StartupPath + "\\Map\\CITIES.shp";
            aLayer = MapDataManage.OpenLayer(aFile);
            ((PointBreak)aLayer.LegendScheme.LegendBreaks[0]).Color = Color.Red;
            aLayer.Expanded = true;
            layersLegend1.ActiveMapFrame.AddLayer(aLayer);
            //Label city name
            VectorLayer cityLayer = (VectorLayer)aLayer;
            cityLayer.LabelSet.FieldName = "NAME";
            cityLayer.LabelSet.AvoidCollision = true;
            cityLayer.LabelSet.LabelAlignType = MeteoInfoC.Legend.AlignType.Center;
            cityLayer.LabelSet.XOffset = 0;
            cityLayer.LabelSet.YOffset = 0;
            cityLayer.LabelSet.LabelFont = new Font("Arial", 8);
            cityLayer.LabelSet.LabelColor = Color.Red;
            cityLayer.LabelSet.DrawShadow = false;
            cityLayer.LabelSet.ShadowColor = Color.White;
            cityLayer.LabelSet.ColorByLegend = false;
            cityLayer.AddLabels();

            //Set layout map size
            mapLayout1.ActiveLayoutMap.Left = 40;
            mapLayout1.ActiveLayoutMap.Top = 40;
            mapLayout1.ActiveLayoutMap.Width = 600;
            mapLayout1.ActiveLayoutMap.Height = 400;

            //Refresh
            layersLegend1.ActiveMapFrame.MapView.LockViewUpdate = false;
            layersLegend1.ActiveMapFrame.MapView.ZoomToExtent(70, 140, 10, 60);
            layersLegend1.Refresh();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            //Set width and height
            this.Width = 1000;
            this.Height = 625;

            //Load layers
            LoadLayers();

            //Set initial tool
           // TSB_Pan.PerformClick();
        }





    }
}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-2-11 15:27:03 | 显示全部楼层
老师,上面是我照着您的代码写出来的,可是,出的图里面什么都没有!!!!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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