1 首先如何设置 infowindow或infoWindowRenderer的边框背景色:
<fx:Style> @namespace esri "http://www.esri.com/2008/ags"; esri|InfoWindowLabel { color: white; font-size: 20; } esri|InfoWindow { border-thickness: 0; background-color: green; font-size: 16; upper-left-radius: 15; upper-right-radius: 0; info-placement: top; info-offset-y: 20; } </fx:Style>
效果如图:
2 点击地图 任意位置 弹出一个信息窗:
private function onMouseCLK(event:MapMouseEvent):void { myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY)); //设置里面的文字: myTextArea.text="asdfasf"; }
设置信息泡的组件:
<esri:Map id="myMap" mapClick="onMouseCLK(event)"> <esri:infoWindowContent> <mx:TextArea id="myTextArea" width="250" height="75"/> </esri:infoWindowContent> </esri:Map>
3 点击任意一个图元,弹出信息窗:
方式一: 最简单,直接在给图层的infoWindowRenderer 属性赋值:
<esri:GraphicsLayer > <esri:infoWindowRenderer> <fx:Component> <mx:VBox backgroundColor="0xffffff" color="0x444444" label="Parcel {data.PARCELID}"> <mx:Label text="Owner: {data.OWNERNME1}"/> <mx:Label text="Address: {data.SITEADDRESS}"/> <mx:Label text="Land Value: {data.LNDVALUE}"/> <mx:Label text="Landuse: {data.USECD}"/> </mx:VBox> </fx:Component> </esri:infoWindowRenderer> <esri:GraphicsLayer/>
方式二: 给graphic加 事件,在事件处理函数中弹出信息窗,所以当图元超过500时,效率很差。
<esri:GraphicsLayer id="roadLayer" graphicAdd="fLayer_graphicAddHandler" />
<!--当图层被加入图元时 触发事件-->
protected function fLayer_graphicAddHandler(event:GraphicEvent):void
{
event.graphic.addEventListener(MouseEvent.MOUSE_CLICK, onMouseClkHandler);
}
pprivate function onMouseClkHandler(event:MouseEvent):void { var gr:Graphic = Graphic(event.target); gr.symbol = mouseOverSymbol; myMap.infoWindow.label = gr.attributes.NAME; myMap.infoWindow.closeButtonVisible = false; myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY)); }
或者:
gra.infoWindowRenderer=new ClassFactory(weatherInfoWin);
gra.symble=....;