ags infoWindow 应用
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" />
<!--当图层被加入图元时 触发事件-->
?
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=....;
?