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=....;