11 //不显示关闭按钮
12 myMap.infoWindow.closeButtonVisible = false; 13 }
9.最后就是编写鼠标移动上去的事件监听和鼠标移开的事件监听的2个事件方法: 1//鼠标移上去事件显示infoWindow
2 private function maouseOverHandler(event:MouseEvent):void 3
{
4 //获取当前鼠标移动上去的点对象 5 var graphic:Graphic=Graphic(event.target); 6 //转换成MapPoint
7 var mapPoint:MapPoint=MapPoint(graphic.geometry); 8 //设置cityInfo.mxml的AREANAME
9 m_content.AREANAME = graphic.attributes.AREANAME; 10 //设置cityInfo.mxml的CLASS
11 m_content.CLASS = graphic.attributes.CLASS; 12 //设置cityInfo.mxml的CAPITAL
13 m_content.CAPITAL = graphic.attributes.CAPITAL; 14 //设置cityInfo.mxml的ST
15 m_content.ST = graphic.attributes.ST; 16 //设置cityInfo.mxml的POP2000
17 m_content.POP2000 = graphic.attributes.POP2000; 18 //显示infoWindow
19 myMap.infoWindow.show(mapPoint); 20 } 21
22 //鼠标移开事件隐藏infoWindow
23 private function maouseOutHandler(event:MouseEvent):void 24
{
25 myMap.infoWindow.hide(); 26 }
10.完成所有的功能运行测试效果。
(九)ArcGIS.Server.9.3和ArcGIS API for Flex在MapTips显示饼图数据统计
1.ArcGIS API for Flex实现在MapTips中显示饼图进行数据统计展示,在本例子中可以点击城市的MapTip后显示详细人口年龄段的统计饼图的功能。 准备工作:
1.在ArcGIS.Server.9.3发布一个叫California的Map Service,并且把这个Service启动起来,这次需要一些数据用来进行图表显示了,California的数据比较齐全了所以本例采用这个数据。 2.
底
图
的
话
采
用
Esri
在
线
数
据
http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer 完成后的效果图:
开始:
1.启动Flex Builder3新建工程以及引入1.0正式版的ArcGIS API for Flex library的开发包。 2.新建chartInfowindow.mxml页面,添加Map、ArcGISTiledMapServiceLayer、ArcGISDynamicMapServiceLayer、GraphicsLayer等。具体代码如下: 1 2
xmax=”-114.589241057072″ ymax=”40.9473919319488″ /> verticalCenter=”0″ left=”10″> 3 url=”http://jh-53a435fbc0e8/ArcGIS/rest/services/California/MapServer”> 6 11 3.上面的代码以ESRI_StreetMap_World_2D的ArcGISTiledMapServiceLayer为底图。在底图上只显示California的Cities的点图层,具体看ArcGISDynamicMapServiceLayer部分的设置。添加了一个GraphicsLayer用来显示MapTip了,同时设置了以California的范围为当前底图的Extent。 4.接下来需要用esri:InfoSymbol来实现mapTip,代码如下: 1 click=”clickHandler()” rollOver=”rollOverHandler()” backgroundColor=”0xEEEEEE” rollOut=”rollOutHandler()” > 5 6 .InfoCloseButton 7 { 8 9 10 disabledSkin: downSkin: overSkin: Embed(source=”assets/skins.swf”,symbol=”Callout_closeButtonDisabledSkin”); Embed(source=”assets/skins.swf”,symbol=”Callout_closeButtonDownSkin”); url=”http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer Embed(source=”assets/skins.swf”,symbol=”Callout_closeButtonOverSkin”); 11 upSkin: Embed(source=”assets/skins.swf”,symbol=”Callout_closeButtonUpSkin”); 12 } 13 .InfoExpandButton 14 { 15 16 17 18 disabledSkin: downSkin: overSkin: upSkin: Embed(source=”assets/skins.swf”,symbol=”Callout_expandButtonDisabledSkin”); Embed(source=”assets/skins.swf”,symbol=”Callout_expandButtonDownSkin”); Embed(source=”assets/skins.swf”,symbol=”Callout_expandButtonOverSkin”); Embed(source=”assets/skins.swf”,symbol=”Callout_expandButtonUpSkin”); 19 } 20 21 23 import mx.collections.ArrayCollection; 24 private function clickHandler():void 25 { 26 switch(currentState ) 27 { 28 case \ 29 currentState = \ 30 break; 31 case \ 32 currentState = \ 33 break; 34 case \ 35 currentState = \ 36 break; 37 } 38 } 39 private function rollOverHandler() : void 40 { 41 if(currentState == null || currentState == \ 42 { 43 currentState = \ 44 } 45 } 46 private function rollOutHandler() : void 47 { 48 if( currentState == \ 49 { 50 currentState = \ 51 } 52 } 53 ]]> 54 56 57 58 59 styleName=”InfoExpandButton” width=”18″ height=”18″ /> 63 64 65 66 69 styleName=”InfoCloseButton” width=”18″ height=”18″ /> 73 74 75 76 77 78