最近才發現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);
}