ArcGISServer Flex API 内嵌饼状图

0
分享 2013-09-13
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中取出要显示在饼图中的属性值(如:p2009、p2010、p2011),组合成包含item、value两字段的对象存放在ArrayCollection中,其中item、value用于PieChart的PieSeries绑定,最后将这个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);
}
文章来源:http://blog.csdn.net/sydbc/article/details/17020261

0 个评论

要回复文章请先登录注册