ArcGISServer Flex API 内嵌饼状图

InfoSymbol符号内嵌PieChart控件,饼图的dataProvider属性绑定的是{data.thematic},它代表的其实就是Graphic对象的attributes属性thematic对象,InfoSymbol中的data代表的就是其对应的Graphic对象的attributes属性

         <fx:Declarations>

                 <!--将非可视元素(例如服务、值对象)放在此处 -->               

                 <esri:InfoSymbolid="infoSymbol" infoPlacement="center" >

                         <esri:infoRenderer>

                                  <fx:Component>

                                           <s:ItemRenderer>                                      

                                                    <mx:PieChartshowdatatips="true" width="150" height="150"dataProvider="{data.thematic}">

                                                            <mx:series>

                                                                     <mx:PieSeriesfield="value" displayName="数值" nameField="item"/>

                                                            </mx:series>

                                                    </mx:PieChart>

                                           </s:ItemRenderer>

                                  </fx:Component>

                         </esri:infoRenderer>

                 </esri:InfoSymbol>

         </fx:Declarations>

 

注意:要将PieChart控件嵌入到s:ItemRenderer中,否则会提示data属性未定义

 

查询得到的Graphic中取出要显示在饼图中的属性值(如:p2009p2010p2011,组合成包含itemvalue两字段的对象存放在ArrayCollection中,其中itemvalue用于PieChartPieSeries绑定,最后将这个ArrayCollection设置给Graphic.attributes.thematic

 

                                           foreach( var gra:Graphic in featureSet.features)

                                           {

                                                    varppoint:MapPoint = gra.geometry as MapPoint;

                                                    varmp:MapPoint = new MapPoint(ppoint.x,ppoint.y);

                                                    varg:Graphic = new Graphic(mp);

                                                    g.attributes= new Object();

                                                    varthematic:ArrayCollection = new ArrayCollection( [                                            

                                                            {item: "项目1",value: gra.attributes["p2009"] },

                                                            {item: "项目2",value: gra.attributes["p2010"] },

                                                            {item: "项目3",value: gra.attributes["p2011"] } ]);

                                                    g.attributes.thematic= thematic;

                                                    templyr.add(g); 

}

相关文章

一:display:flex布局display:flex是一种布局方式。它即可以...
1. flex设置元素垂直居中对齐在之前的一篇文章中记载过如何...
移动端开发知识点pc端软件和移动端apppc端软件是什么,有哪些...
最近挺忙的,准备考试,还有其他的事,没时间研究东西,快周...
display:flex;把容器设置为弹性盒模型(设置为弹性盒模型之后...
我在网页上运行了一个Flex应用程序,我想使用Command←组合键...