/examples/ArcGISLink/src/MapClick.mxml
Macromedia eXtensible Markup Language | 136 lines | 122 code | 14 blank | 0 comment | 0 complexity | d82785b00e1ef57365d18cb4b713ad60 MD5 | raw file
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="absolute"
- viewSourceURL="srcview/index.html">
- <mx:Panel title="Map Click: Click on map to get information"
- width="100%"
- height="100%">
-
-
- <maps:Map xmlns:maps="com.google.maps.*"
- id="map"
- mapevent_mappreinitialize="onMapPreInitialize(event)"
- mapevent_mapready="onMapReady(event)"
- width="100%"
- height="100%"
- sensor="false" key="ABQIAAAA7QUChpcnvnmXxsjC7s1fCxQGj0PqsCtxKvarsoS-iqLdqZSKfxTd7Xf-2rEc_PC9o8IsJde80Wnj4g"/>
- </mx:Panel>
- <mx:Script>
- <![CDATA[
- import com.google.maps.InfoWindowOptions;
- import com.google.maps.LatLng;
- import com.google.maps.LatLngBounds;
- import com.google.maps.Map;
- import com.google.maps.MapEvent;
- import com.google.maps.MapMouseEvent;
- import com.google.maps.MapOptions;
- import com.google.maps.MapType;
- import com.google.maps.controls.MapTypeControl;
- import com.google.maps.controls.NavigationControl;
- import com.google.maps.controls.ZoomControl;
- import com.google.maps.extras.arcgislink.*;
- import com.google.maps.interfaces.*;
- import com.google.maps.styles.FillStyle;
-
- import flash.display.*;
-
- import mx.collections.*;
- import mx.controls.*;
- import mx.controls.Alert;
- import mx.controls.dataGridClasses.*;
-
- private var _svc:MapService;
- private var _flag:Boolean;
- private var _ov: ArcGISMapOverlay;
- private var _ovs: Array = [];
-
- private function onMapPreInitialize(event:Event):void {
- var url:String='http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/BloomfieldHillsMichigan/Parcels/MapServer';
- _svc=new MapService(url);
- _svc.addEventListener(ServiceEvent.ERROR, function(evt:ServiceEvent):void{
- Alert.show(evt.data.toString());
- });
- _ov =new ArcGISMapOverlay(_svc, new ArcGISMapOverlayOptions({alpha: 0.5}));
- _ov.addEventListener(ServiceEvent.LOAD, function (evt:ServiceEvent):void{
- map.addOverlay(_ov);
-
- });
- var opts:MapOptions=new MapOptions({center: new LatLng(42.58, -83.29), zoom: 17});
- map.setInitOptions(opts);
- }
-
- private function onMapReady(event:Event):void {
- map.enableScrollWheelZoom();
- map.addControl(new MapTypeControl());
- map.addControl(new NavigationControl());
- map.addEventListener(MapMouseEvent.CLICK, doIdentify);
- }
-
- private function doIdentify(evt:MapMouseEvent):void {
- for (var i:int=0, c:int=_ovs.length; i < c; i++) {
- map.removeOverlay(_ovs[i]);
- }
- _ovs.length = 0;
- var latlng:LatLng=evt.latLng;
- var bnds:LatLngBounds=map.getLatLngBounds();
- var size:Point=map.getSize();
- var idParams:IdentifyParameters=new IdentifyParameters({
- geometry: latlng,
- layerOption: 'top', tolerance: 5, bounds: bnds, width: size.x, height : size.y ,dpi:96,
- returnGeometry: true});
- _svc.identify(idParams, function processResults(res:IdentifyResults):void {
- if (res.results && res.results.length>0) {
- idWin.visible=true;
-
- idWin.title=res.results[0].layerName + ' : ' + res.results[0].value;
- var data:ArrayCollection=new ArrayCollection();
- for (var i:int=0, c:int=res.results.length; i < c; i++) {
- var r:IdentifyResult=res.results[i] as IdentifyResult;
-
- //layerName= r.layerName;
- var a:*=r.attributes;
- for (var x:String in a) {
- if (a.hasOwnProperty(x)) {
- var val:*=a[x];
- val=(val === null || typeof val === 'undefined') ? '' : '' + val;
- data.addItem({name: x, value: val});
- }
- }
- if (r.geometry && r.geometry.length>0){
- for each (var ov:IOverlay in r.geometry){
- map.addOverlay(ov);
- _ovs.push(ov);
- }
- }
- }
- idResults.dataProvider=data;
- idResults.alpha = 0.5;
- map.openInfoWindow(latlng, new InfoWindowOptions({
- drawDefaultFrame: false, customContent: idWin
- , fillStyle:new FillStyle({alpha:0.2})
- }));
- }
- });
- }
- ]]>
- </mx:Script>
- <mx:Panel id="idWin"
- visible="false"
- layout="vertical" backgroundAlpha="0.5" >
-
- <mx:DataGrid id="idResults"
- width="250"
- height="200" >
- <mx:columns>
- <mx:DataGridColumn headerText="Name"
- dataField="name"
- sortable="false" />
- <mx:DataGridColumn headerText="Value"
- dataField="value"
- sortable="false"/>
- </mx:columns>
- </mx:DataGrid>
- </mx:Panel>
-
-
- </mx:Application>