爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7564|回复: 13

Meteoinfo显示站点数据的问题

[复制链接]

新浪微博达人勋

发表于 2014-11-28 08:49:12 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 zhksoft 于 2014-11-28 08:51 编辑

       我按照程序目录下的\Sample\LonLatStation\AERONET_Stations.csv做了一个站点文件如下:

Stid,Longitude,Latitude,Jieguo,JieguoStr
51053,86.35,48.05,1,无
51059,85.86,47.43,4,大雪
51076,88.08,47.73,2,小雪
51087,89.52,46.98,3,中雪
51186,90.38,46.66,1,无

现在问题有两个:一、怎么样在vs里的mapview里显示这个站点数据(搜了论坛,按站点插值到格点的例子做没做出来)

                            二、用meteoinfo自身打开该站点文件,可以显示,但不认以字符列JieguoStr,只认Jieguo这个列,我想在站点旁边直接以字符的形式直观的显示结果,能实现么?




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

新浪微博达人勋

发表于 2014-11-28 09:47:52 | 显示全部楼层
谢谢楼主分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-28 11:43:41 | 显示全部楼层
一、请看论坛的二次开发教程和Demo程序源代码

二、生成Station_Info图层即可
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-28 12:07:14 | 显示全部楼层
本帖最后由 zhksoft 于 2014-11-28 12:14 编辑
MeteoInfo 发表于 2014-11-28 11:43
一、请看论坛的二次开发教程和Demo程序源代码

二、生成Station_Info图层即


  1. private void toolStripButton4_Click(object sender, EventArgs e)
  2.         {
  3.             //Read data info
  4.             MeteoDataInfo aDataInfo = new MeteoDataInfo();
  5.             string aFile = Application.StartupPath + "\\data\\data141127.csv";
  6.             aDataInfo.OpenLonLatData(aFile);

  7.             //Get station data
  8.             StationData stationData = aDataInfo.GetStationData("Jieguo");

  9.             //Create legend scheme

  10.             LegendScheme aLS = LegendManage.CreateLegendSchemeFromStationData(stationData, LegendType.SingleSymbol, ShapeTypes.Circle);
  11.             //((PolygonBreak)aLS.LegendBreaks[0]).DrawFill = true;

  12.             //Create layer
  13.             VectorLayer aLayer = new VectorLayer(ShapeTypes.Point);

  14.             aLayer = DrawMeteoData.CreateSTPointLayer(stationData, aLS, "Jieguo", "Jieguo");
  15.             //aLayer.IsMaskout = true;
  16.             //Add layer
  17.             layersLegend1.ActiveMapFrame.AddLayer(aLayer);

  18.             layersLegend1.Refresh();
  19.         }


王老师,这是我的代码,可是只在layersLegend1里显示名字,没有数据生成
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-28 12:44:22 | 显示全部楼层
zhksoft 发表于 2014-11-28 12:07
王老师,这是我的代码,可是只在layersLegend1里显示名字,没有数据生成

“没有数据生成”是什么意思?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-28 13:09:28 | 显示全部楼层
问题一解决了,站点数据可以显示了,还剩生成Station_Info图层了,加油
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-28 13:18:15 | 显示全部楼层
MeteoInfo 发表于 2014-11-28 12:44
“没有数据生成”是什么意思?

意思是mapview里啥都没有显示。这个问题已经解决了

StationData stationData = aDataInfo.GetStationData("Jieguo");

            //Get StationData
            //StationData visData = aDataInfo.GetStationData("Visibility");

            //Create a legend scheme
            bool hasUndefData = false;
            LegendScheme aLS = LegendManage.CreateLegendSchemeFromStationData(stationData, LegendType.GraduatedColor, ShapeTypes.Point, ref hasUndefData);
            for (int i = 0; i < aLS.BreakNum; i++)
                ((PointBreak)aLS.LegendBreaks).Size = 8;

            //Create a contour layer
            VectorLayer aLayer = DrawMeteoData.CreateSTPointLayer(stationData, aLS, "StationPoint_Jieguo", "Jieguo");

            //Add layer
            layersLegend1.ActiveMapFrame.AddLayer(aLayer);
            layersLegend1.Refresh();

现在在想办法解决问题二,不另加层,在这个层里改显示的标签貌似不行?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-28 13:40:51 | 显示全部楼层
Stid,Longitude,Latitude,Jieguo,JieguoStr
51053,86.35,48.05,1,无
51059,85.86,47.43,4,大雪
51076,88.08,47.73,2,小雪
51087,89.52,46.98,3,中雪
51186,90.38,46.66,1,无

王老师,站点数据中包含字符型数据JieguoStr,我想用程序读出来显示到指定站点旁边。可是用
StationData stationData = aDataInfo.GetStationData("JieguoStr");
这条语句读会报错,而用
StationData stationData = aDataInfo.GetStationData("Jieguo");
这条语句读后,属性表里只有stid和jieguo两个字段。
我在1.1.3.0版里打开该数据,在属性表里有stid,logitude,latitude,jieguo,jieguostr这几个字段,只是jieguostr这个字段里的中文是乱码,是我的读站点数据的语句用的不对么?还有,那个中文乱码能否处理?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-28 16:00:24 | 显示全部楼层
zhksoft 发表于 2014-11-28 13:40
Stid,Longitude,Latitude,Jieguo,JieguoStr
51053,86.35,48.05,1,无
51059,85.86,47.43,4,大雪

StationInfoData stInfoData = aDataInfo.GetStationInfoData();
LegendScheme aLS = LegendManage.CreateSingleSymbolLegendScheme(ShapeTypes.Point, Color.Red, 6);
aLayer = DrawMeteoData.CreateSTInfoLayer(stInfoData, aLS, "StationInfo_Jieguo");
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-28 16:54:28 | 显示全部楼层
MeteoInfo 发表于 2014-11-28 16:00
StationInfoData stInfoData = aDataInfo.GetStationInfoData();
LegendScheme aLS = LegendManage.Crea ...

多谢王老师指点,加了labelset后,达到了预期效果。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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