ARCGIS viewer入门(11)自定义InfoSymbol

来源:互联网 发布:詹姆斯打球特点 知乎 编辑:程序博客网 时间:2024/05/01 09:20

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:s="library://ns.adobe.com/flex/spark"
   xmlns:mx="library://ns.adobe.com/flex/mx"
   xmlns:fx="http://ns.adobe.com/mxml/2009"
   width="174" height="100%" initialize="label1_initializeHandler(event)"   >
 <fx:Declarations>
 
 
  <fx:Array id="colorArray">
   <s:SolidColor color="#6666CC" alpha="0.5"/>
   <s:SolidColor color="#CC6666" alpha="0.5"/>
   <s:SolidColor color="#66CC66" alpha="0.5"/>
   <s:SolidColor color="#B8B83D" alpha="0.5"/>
  </fx:Array>
 </fx:Declarations>
 <fx:Script>
  <![CDATA[
   import mx.charts.events.ChartItemEvent;
   import mx.charts.series.items.PieSeriesItem;
   import mx.collections.ArrayCollection;
   import mx.controls.Alert;
   import mx.events.FlexEvent;
   import mx.rpc.events.FaultEvent;
   import mx.rpc.events.ResultEvent;
   import mx.rpc.soap.WebService;
   
   import ustc.Const;
   [Bindable]
   private var db:ArrayCollection = new ArrayCollection ([
    {country:"在运行",gold:35,sliver:20,bronze:10},
    {country:"总数",gold:60,sliver:25,bronze:10}
   ]);
   
   //private function showMoreInfo(data:Object, field:String, index:Number, percentValue:Number):String{
    //data表示传进来的整个对象,你可以访问他的各种属性了.field表示目前你用了哪个属性(这里是gold).
    //index是顺序(也就是美国0,中国1,日本2),percentValue是百分比(他的返回值很长,比如36.0815241424);
    //var percent:String = percentValue.toString().substr(0,6);
    //return data.country + "建设总数:" + data.gold ;//+ "(其中乡镇数:" + data.sliver + "); 百分比:" + percent + "%";
   //}
 
   
  
   private function onLoad(event:ResultEvent):void{
    // Alert.show(event.result.toString(),"WebService Results");
     var runroomcode:String=  event.result.toString() ;
     if(runroomcode=="")return;
 
     var obj:Object= JSON.parse(runroomcode);
    
    // var gold1:int=obj.ylscount as int;
    // var gold2:int=obj.runcount as int; 
     //label1.text=obj.ylscount+"-++-"+obj.runcount;
     db =new ArrayCollection([{country:"在运行",  gold:obj.runcount}, {country:"总数", gold:obj.ylscount}]); 
     pie.dataProvider=db;
    
   }
   
   // 调用webservice失败处理函数
   public function fault(fault:FaultEvent):void {    
    Alert.show("通信失败!原因:" + fault.toString(), "提示");
   }
   
   var timer:Timer = new Timer(3000);
      private function deferredMethod(event:TimerEvent):void
   {
    // TODO Auto-generated method stub
    var service:WebService = new WebService();
    service.loadWSDL (ustc.Const.WebUrl);
    service.addEventListener (ResultEvent.RESULT,onLoad);//载入数据的处理
    service.addEventListener(FaultEvent.FAULT,fault);//错误处理
    //Alert.show(label1.text+"----无码");
    service.getCenterByCode(data.ID);
    timer.stop();
   }
   
   protected function label1_initializeHandler(event:FlexEvent):void
   {
    
    timer.addEventListener(TimerEvent.TIMER, deferredMethod); 
    timer.start();
    

   
   }
   
  ]]>
 </fx:Script>
 <mx:Label id="label1" text="{data.NAME}"  />
 <mx:HBox id="hbox1">
  <mx:PieChart id="pie"   width="100" height="100" showDataTips="true">
   <mx:series>
    <mx:PieSeries field="gold" labelPosition="none" nameField="country" >
     
     <!-- 内部分割线条 -->
     <mx:radialStroke>
      <mx:Stroke weight="1" color="#ffffff" alpha="0.3" />
     </mx:radialStroke>
     
     <!-- 圆周边 边线 -->
     <mx:stroke>
      <mx:Stroke weight="2" color="#000000" alpha="0.5" />
     </mx:stroke>
     
     <!-- 提示信息的线 -->
     <mx:calloutStroke>
      <mx:Stroke weight="1" color="#000000" alpha="0.5" />
     </mx:calloutStroke>
    </mx:PieSeries>
   </mx:series>
   
  </mx:PieChart>
  <!-- 图例说明 -->
  <mx:Legend dataProvider="{pie}" />
 </mx:HBox>
 
</mx:VBox>

=====================================================================

调用:

      var mySymbol:InfoSymbol = new InfoSymbol();
        //Alert.show(code+"========"+runroomcode);
        //if(runroomcode.indexOf(code)>-1)
        //{
        mySymbol.infoRenderer = new ClassFactory(MyInfoRenderer);
        graphic.symbol = mySymbol;

原创粉丝点击