最近才发现ArrcGIS API For Flex中有个PopupRenderer,结合PopUpInfo使用,实现弹出框的效果,类似InfoSymbol。目前个人觉得PopupRendere比InfoSymbol好用,若是需要展示某点的多个字段信息,InfoSymbol需要定义DataRenderer,并添加多个标签来展示字段。使用PopUprenderer,对PopUpInfo定义title,description属性,在description属性中可以任意添加字段,来显示某点信息。另外对于使用PopUpRenderer,可以对其弹出框进行关闭,而InfoSymbol是不行的。
使用PopUpRenderer的相关代码,如下:
var popUpInfo:PopUpInfo = new PopUpInfo();
popUpInfo.title = infoObj[0].displayf;
popUpInfo.description = “预警个数:{number}”;
var infoWindowRenderer:ClassFactory = new ClassFactory(PopUpRenderer);
infoWindowRenderer.properties = { popUpInfo: popUpInfo };
locateLyr.infoWindowRenderer = infoWindowRenderer; //locateLyr为GraphicsLayer,显示需要显示信息的某点
popUpRenderer.popUpInfo = popUpInfo;
popUpRenderer.graphic = locateGra; //locateGra选择的点
locateLyr.add(locateGra);
var pt:MapPoint = locateGra.geometry as MapPoint;
map.centerAt(pt);
infoWindowShow();
//
//显示弹出的窗口
//
private function infoWindowShow():void
{
map.infoWindow.content = popUpRenderer;
map.infoWindow.contentOwner = popUpRenderer.graphic;
map.infoWindow.show(popUpRenderer.graphic.geometry as MapPoint);
}