private function showFlood(event:MouseEvent):void { msg = "Loading Flood Zone layer . . . "; PopUpManager.addPopUp(tWindow2, hostComponent.map, true); PopUpManager.centerPopUp(tWindow2); event.stopImmediatePropagation(); ViewerContainer.addEventListener(AppEvent.LAYER_LOADED, layerloadComplete); ViewerContainer.dispatchEvent(new AppEvent(AppEvent.PROGRAMATIC_LAYER_VISIBILITY_CHANGED, "Flood Zones")); var resultEvent:Polygon = new Polygon; geomArr = []; var graphic:Graphic = hostComponent.graphic; geomArr.push(graphic.geometry); var bufferParameters:BufferParameters = new BufferParameters(); bufferParameters.bufferSpatialReference= new SpatialReference(102003); bufferParameters.geometries = geomArr; bufferParameters.unit = GeometryService.UNIT_FOOT; bufferParameters.distances = [ 1 ]; function layerloadComplete(event:AppEvent):void { ViewerContainer.removeEventListener(AppEvent.LAYER_LOADED, layerloadComplete); msg = "Searching for nearest Flood Zone . . . "; beginBuffer(); } function beginBuffer():void { myGeometryService.addEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler); myGeometryService.buffer(bufferParameters); } function bufferCompleteHandler(event:GeometryServiceEvent):void { myGeometryService.removeEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler); resultEvent = event.result[0]; try { var graphic:Graphic = new Graphic(); graphic.geometry = resultEvent; queryFeaturesGraphical(graphic.geometry); } catch (error:Error) { Alert.show(error.message); } } function queryFeaturesGraphical(geom:Geometry):void { var queryParams:Query = new Query(); queryParams.returnGeometry = false; var queryFields:String = "*"; queryParams.outFields = queryFields.split(","); queryParams.geometry = geom; queryParams.where = "FLD_ZONE IN ('A','AE')"; queryParams.spatialRelationship = "esriSpatialRelIntersects"; var url:String = "http://[myserver]/ArcGIS/rest/services/Feature_Natural/MapServer/8"; var queryTask:QueryTask = new QueryTask(url); queryTask.execute(queryParams, new AsyncResponder(onResult, onFault)); } function onResult(featureSet:FeatureSet, token:XMLList = null):void { try { if (featureSet.features.length < 1) { if (bufferParameters.distances[0].toString() == "5280") { msg = "The nearest Flood Zone is more than a mile away."; } if (bufferParameters.distances[0].toString() == "2640") { msg = "The nearest Flood Zone is more than a half mile away."; bufferParameters.distances = [ 5280 ]; beginBuffer(); } if (bufferParameters.distances[0].toString() == "1000") { msg = "The nearest Flood Zone is more than 1000 feet away."; bufferParameters.distances = [ 2640 ]; beginBuffer(); } if (bufferParameters.distances[0].toString() == "500") { msg = "The nearest Flood Zone is more than 500 feet away."; bufferParameters.distances = [ 1000 ]; beginBuffer(); } if (bufferParameters.distances[0].toString() == "200") { msg = "The nearest Flood Zone is more than 200 feet away."; bufferParameters.distances = [ 500 ]; beginBuffer(); } if (bufferParameters.distances[0].toString() == "1") { msg = "This property is touching or inside a Flood Zone."; bufferParameters.distances = [ 200 ]; beginBuffer(); } } else { for each(var obj:Object in featureSet.attributes){ Alert.show("done"); break; } } } catch (error:Error) { Alert.show(error.message); } } function onFault(info:Object, token:Object = null):void { Alert.show(info.toString()); } }
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.