微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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); 

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐