PageRenderTime 37ms CodeModel.GetById 6ms RepoModel.GetById 0ms app.codeStats 0ms

/examples/ArcGISLink/src/MapClick.mxml

http://gmaps-utility-library-flash.googlecode.com/
Macromedia eXtensible Markup Language | 136 lines | 122 code | 14 blank | 0 comment | 0 complexity | d82785b00e1ef57365d18cb4b713ad60 MD5 | raw file
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3. layout="absolute"
  4. viewSourceURL="srcview/index.html">
  5. <mx:Panel title="Map Click: Click on map to get information"
  6. width="100%"
  7. height="100%">
  8. <maps:Map xmlns:maps="com.google.maps.*"
  9. id="map"
  10. mapevent_mappreinitialize="onMapPreInitialize(event)"
  11. mapevent_mapready="onMapReady(event)"
  12. width="100%"
  13. height="100%"
  14. sensor="false" key="ABQIAAAA7QUChpcnvnmXxsjC7s1fCxQGj0PqsCtxKvarsoS-iqLdqZSKfxTd7Xf-2rEc_PC9o8IsJde80Wnj4g"/>
  15. </mx:Panel>
  16. <mx:Script>
  17. <![CDATA[
  18. import com.google.maps.InfoWindowOptions;
  19. import com.google.maps.LatLng;
  20. import com.google.maps.LatLngBounds;
  21. import com.google.maps.Map;
  22. import com.google.maps.MapEvent;
  23. import com.google.maps.MapMouseEvent;
  24. import com.google.maps.MapOptions;
  25. import com.google.maps.MapType;
  26. import com.google.maps.controls.MapTypeControl;
  27. import com.google.maps.controls.NavigationControl;
  28. import com.google.maps.controls.ZoomControl;
  29. import com.google.maps.extras.arcgislink.*;
  30. import com.google.maps.interfaces.*;
  31. import com.google.maps.styles.FillStyle;
  32. import flash.display.*;
  33. import mx.collections.*;
  34. import mx.controls.*;
  35. import mx.controls.Alert;
  36. import mx.controls.dataGridClasses.*;
  37. private var _svc:MapService;
  38. private var _flag:Boolean;
  39. private var _ov: ArcGISMapOverlay;
  40. private var _ovs: Array = [];
  41. private function onMapPreInitialize(event:Event):void {
  42. var url:String='http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/BloomfieldHillsMichigan/Parcels/MapServer';
  43. _svc=new MapService(url);
  44. _svc.addEventListener(ServiceEvent.ERROR, function(evt:ServiceEvent):void{
  45. Alert.show(evt.data.toString());
  46. });
  47. _ov =new ArcGISMapOverlay(_svc, new ArcGISMapOverlayOptions({alpha: 0.5}));
  48. _ov.addEventListener(ServiceEvent.LOAD, function (evt:ServiceEvent):void{
  49. map.addOverlay(_ov);
  50. });
  51. var opts:MapOptions=new MapOptions({center: new LatLng(42.58, -83.29), zoom: 17});
  52. map.setInitOptions(opts);
  53. }
  54. private function onMapReady(event:Event):void {
  55. map.enableScrollWheelZoom();
  56. map.addControl(new MapTypeControl());
  57. map.addControl(new NavigationControl());
  58. map.addEventListener(MapMouseEvent.CLICK, doIdentify);
  59. }
  60. private function doIdentify(evt:MapMouseEvent):void {
  61. for (var i:int=0, c:int=_ovs.length; i < c; i++) {
  62. map.removeOverlay(_ovs[i]);
  63. }
  64. _ovs.length = 0;
  65. var latlng:LatLng=evt.latLng;
  66. var bnds:LatLngBounds=map.getLatLngBounds();
  67. var size:Point=map.getSize();
  68. var idParams:IdentifyParameters=new IdentifyParameters({
  69. geometry: latlng,
  70. layerOption: 'top', tolerance: 5, bounds: bnds, width: size.x, height : size.y ,dpi:96,
  71. returnGeometry: true});
  72. _svc.identify(idParams, function processResults(res:IdentifyResults):void {
  73. if (res.results && res.results.length>0) {
  74. idWin.visible=true;
  75. idWin.title=res.results[0].layerName + ' : ' + res.results[0].value;
  76. var data:ArrayCollection=new ArrayCollection();
  77. for (var i:int=0, c:int=res.results.length; i < c; i++) {
  78. var r:IdentifyResult=res.results[i] as IdentifyResult;
  79. //layerName= r.layerName;
  80. var a:*=r.attributes;
  81. for (var x:String in a) {
  82. if (a.hasOwnProperty(x)) {
  83. var val:*=a[x];
  84. val=(val === null || typeof val === 'undefined') ? '' : '' + val;
  85. data.addItem({name: x, value: val});
  86. }
  87. }
  88. if (r.geometry && r.geometry.length>0){
  89. for each (var ov:IOverlay in r.geometry){
  90. map.addOverlay(ov);
  91. _ovs.push(ov);
  92. }
  93. }
  94. }
  95. idResults.dataProvider=data;
  96. idResults.alpha = 0.5;
  97. map.openInfoWindow(latlng, new InfoWindowOptions({
  98. drawDefaultFrame: false, customContent: idWin
  99. , fillStyle:new FillStyle({alpha:0.2})
  100. }));
  101. }
  102. });
  103. }
  104. ]]>
  105. </mx:Script>
  106. <mx:Panel id="idWin"
  107. visible="false"
  108. layout="vertical" backgroundAlpha="0.5" >
  109. <mx:DataGrid id="idResults"
  110. width="250"
  111. height="200" >
  112. <mx:columns>
  113. <mx:DataGridColumn headerText="Name"
  114. dataField="name"
  115. sortable="false" />
  116. <mx:DataGridColumn headerText="Value"
  117. dataField="value"
  118. sortable="false"/>
  119. </mx:columns>
  120. </mx:DataGrid>
  121. </mx:Panel>
  122. </mx:Application>