爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2714|回复: 5

出现一个错误,不明白为什么?

[复制链接]

新浪微博达人勋

发表于 2014-10-21 11:57:03 | 显示全部楼层 |阅读模式

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

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

x
TypeError: Unable to cast object of type 'MeteoInfoC.Legend.PolygonBreak' to type 'MeteoInfoC.Legend.PolyLineBreak'.来源网址:http://hi.baidu.com/meteoinfo/item/3fa7c11ca5374e6170d5e8c4绘制等值线图,网址中绘制了阴影,我把一下代码更改rainLayer = DrawMeteoData.CreateShadedLayer(gData, ls, "Precipitation", "Rain")
rainLayer = DrawMeteoData.CreateContourLayer(gData, ls, "Precipitation", "Rain")
lgs内容如下<MeteoInfo file="preci" type="LegendScheme">  <LegendScheme FieldName="Precipitation6h" LegendType="UniqueValue" ShapeType="Polyline" BreakNum="10" HasNoData="False" MinValue="0" MaxValue="13" UNDEF="9999">    <Breaks>      <Break Caption="1" StartValue="1" EndValue="1" Color="#6E00DC" DrawShape="True" Size="1" Style="Solid" DrawSymbol="False" SymbolSize="8" SymbolStyle="Square" SymbolColor="#6E00DC" SymbolInterval="1" />      <Break Caption="2" StartValue="2" EndValue="2" Color="#00A0FF" DrawShape="True" Size="1" Style="Solid" DrawSymbol="False" SymbolSize="8" SymbolStyle="UpTriangle" SymbolColor="#00A0FF" SymbolInterval="1" />      <Break Caption="3" StartValue="3" EndValue="3" Color="#00C8C8" DrawShape="True" Size="1" Style="Solid" DrawSymbol="False" SymbolSize="8" SymbolStyle="DownTriangle" SymbolColor="#00C8C8" SymbolInterval="1" />      <Break Caption="4" StartValue="4" EndValue="4" Color="#00DC00" DrawShape="True" Size="1" Style="Solid" DrawSymbol="False" SymbolSize="8" SymbolStyle="Diamond" SymbolColor="#00DC00" SymbolInterval="1" />      <Break Caption="5" StartValue="5" EndValue="5" Color="#A0E632" DrawShape="True" Size="1" Style="Solid" DrawSymbol="False" SymbolSize="8" SymbolStyle="XCross" SymbolColor="#A0E632" SymbolInterval="1" />      <Break Caption="6" StartValue="6" EndValue="6" Color="#E6DC32" DrawShape="True" Size="1" Style="Solid" DrawSymbol="False" SymbolSize="8" SymbolStyle="Plus" SymbolColor="#E6DC32" SymbolInterval="1" />      <Break Caption="7" StartValue="7" EndValue="7" Color="#E6AF2D" DrawShape="True" Size="1" Style="Solid" DrawSymbol="False" SymbolSize="8" SymbolStyle="Star" SymbolColor="#E6AF2D" SymbolInterval="1" />      <Break Caption="8" StartValue="8" EndValue="8" Color="#F08228" DrawShape="True" Size="1" Style="Solid" DrawSymbol="False" SymbolSize="8" SymbolStyle="StarLines" SymbolColor="#F08228" SymbolInterval="1" />      <Break Caption="9" StartValue="9" EndValue="9" Color="#FA3C3C" DrawShape="True" Size="1" Style="Solid" DrawSymbol="False" SymbolSize="8" SymbolStyle="Pentagon" SymbolColor="#FA3C3C" SymbolInterval="1" />      <Break Caption="10" StartValue="10" EndValue="10" Color="#F00082" DrawShape="True" Size="1" Style="Solid" DrawSymbol="False" SymbolSize="8" SymbolStyle="UpSemiCircle" SymbolColor="#F00082" SymbolInterval="1" />    </Breaks>  </LegendScheme></MeteoInfo>

请帮忙分析一下错误原因呀?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-21 12:07:34 | 显示全部楼层
你需要一个Polygon的lgs文件
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-10-21 12:38:46 | 显示全部楼层
MeteoInfo 发表于 2014-10-21 12:07
你需要一个Polygon的lgs文件

绘制的是等值线,为什么不是polyline而是polygon呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-21 14:23:48 | 显示全部楼层
lovechang1314 发表于 2014-10-21 12:38
绘制的是等值线,为什么不是polyline而是polygon呢

你把你整段代码贴出来看看
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-10-21 14:45:06 | 显示全部楼层
  1. 设置
  2. interpSet = InterpolationSetting(60,140,-20,60,160,160,"IDW_Radius",2,1)

  3. #---- 设置图例
  4. ls = LegendScheme(ShapeTypes.Polygon)
  5. #ls.ImportFromXMLFile(LegendDir + "rain1.lgs")
  6. ls.ImportFromXMLFile(homedir + "preci.lgs")

  7. #ls = LegendManage.CreateLegendSchemeFromGridData(press,LegendType.UniqueValue, ShapeTypes.Polyline, ref hasUndefData)
  8. #print ls

  9. #---- 设置MeteoDataInfo
  10. mid = MeteoDataInfo()

  11. #---- 循环
  12. while sTime <= eTime:   
  13.   inFile = sTime.ToString("yyMMddHH") + ".000"
  14.   print inFile
  15.   #---- 打开MICAPS数据文件
  16.   mid.OpenMICAPSData(DataDir + inFile)
  17.   #---- 获取6小时降水量站点数据
  18.   stData = mid.GetStationData("WindSpeed")
  19.   #---- 将站点数据差值为格点数据
  20.   gData = DrawMeteoData.InterpolateData(stData, interpSet)
  21.   #ls = LegendManage.CreateLegendSchemeFromGridData(gData, LegendType.GraduatedColor,ShapeTypes.Polygon)
  22.   #---- 生成6小时降水量图层
  23.   rainLayer = DrawMeteoData.CreateContourLayer(gData, ls, "WindSpeed", "Wind")
  24.   rainLayer.IsMaskout = True
  25.   #---- 添加图层
  26.   mapFrame.AddLayer(rainLayer)
  27.   print "Display finished"
  28.   #---- 调整图层顺序(以避免压盖)
  29.   mapFrame.MoveLayerToBottom(rainLayer)
  30.   #---- 设置标题名称
  31.   title = "      全国降水量实况图\n6小时降水量 (" + sTime.ToString("yyyy-MM-dd HH:00") + ")"
  32.   aText.SetLabelText(title)   
  33.   #---- 设置图例名称
  34.   aLegend.Title = "降水量(毫米)"
  35.   #---- 绘制图形
  36.   mapLayout.PaintGraphics()
  37.   #---- 输出图形为文件
  38.   outFile = "Prec_" + sTime.ToString("yyyyMMddHH") + ".png"
  39.   print outFile
  40.   #mapLayout.ExportToPicture("E:\\Temp\" + outFile)
  41.   #---- 删除6小时降水量图层
  42.   if sTime < eTime:
  43.     mapFrame.RemoveLayer(rainLayer)
  44.   #---- 时间加6小时
  45.   sTime = sTime.AddHours(6)

  46. #---- 显示程序窗体(只是为了看效果,自动运行时不需要)
  47. #Application.Run(myApp)
  48. myApp.Show()
复制代码
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-21 15:22:35 | 显示全部楼层

第5行有问题,你自己仔细看看:
ls = LegendScheme(ShapeTypes.Polygon)
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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