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