geoService.relation(graphics1,graphics2,GeometryService.SPATIAL_REL_WITHIN,null);
for(var i:int=0;i<relation.length;i++) { var g:Graphic = relation. graphic1; myGraphicsLayer.add(g); }
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:esri="http://www.esri.com/2008/ags" layout="vertical" styleName="plain" pageTitle="GeometryService"> <mx:Script> <![CDATA[ import com.esri.ags.events.GeometryServiceEvent; import com.esri.ags.Graphic; import com.esri.ags.tasks.FeatureSet; import com.esri.ags.events.QueryEvent; import com.esri.ags.tasks.Query; import mx.controls.Alert; import mx.rpc.AsyncResponder; import mx.utils.ObjectUtil; private var graphics1:Array; private var graphics2:Array; private function queryCities():void { cursorManager.setBusyCursor(); graphics1 = new Array(); var query:Query = new Query(); query.geometry = myMap.extent; query.where = "OBJECTID <> 0"; query.outFields = ["NAME"]; query.returnGeometry = true; queryCitiesTask.execute(query,new AsyncResponder(queryCitiesResult,onFault)); function queryCitiesResult(result:FeatureSet,token:Object=null):void { for each(var g:Graphic in result.features) { graphics1.push(g); } queryProvince(); } } private function queryProvince():void { graphics2 = new Array(); var query:Query = new Query(); query.geometry = myMap.extent; query.where = "STATE_NAME like '%"+txtInput.text+"%'"; query.outFields=["STATE_NAME"]; query.returnGeometry = true; queryProvinceTask.execute(query,new AsyncResponder(queryProvinceResult,onFault)); function queryProvinceResult(result:FeatureSet,token:Object = null):void { var g:Graphic = result.features[0]; graphics2.push(g); callLater(doRelate,null); } } private function doRelate():void { geoService.relation(graphics1,graphics2,GeometryService.SPATIAL_REL_WITHIN,null); } private function onFault(info:Object,token:Object = null):void { Alert.show(info.toString(),"ERROR"); cursorManager.removeBusyCursor(); } private function onRelationComplete(event:GeometryServiceEvent):void { var relation:Array = event.relations; myGraphicsLayer.clear(); //trace(ObjectUtil.toString(relation)); for(var i:int=0;i<relation.length;i++) { var g:Graphic = relation.graphic1; myGraphicsLayer.add(g); } cursorManager.removeBusyCursor(); } ]]> </mx:Script> <esri:GeometryService id="geoService" fault="onFault(event)" relationComplete="onRelationComplete(event)" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"/> <esri:QueryTask id="queryCitiesTask" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/3"/> <esri:QueryTask id="queryProvinceTask" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/5"/> <mx:HBox horizontalAlign="center" width="100%"> <mx:Label id="lab" text="Please input the name" fontWeight="bold"/> <mx:TextInput id="txtInput" text="Alabama"/> <mx:Button id="btnQuery" label="Query" click="queryCities()"/> </mx:HBox> <esri:Map id="myMap" scaleBarVisible="false" logoVisible="false"> <esri:ArcGISDynamicMapServiceLayer url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"/> <esri:GraphicsLayer id="myGraphicsLayer"/> </esri:Map> </mx:Application>
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:esri="http://www.esri.com/2008/ags" layout="vertical" styleName="plain" pageTitle="GeometryService"> <mx:Script> <![CDATA[ import com.esri.ags.events.GeometryServiceEvent; import com.esri.ags.Graphic; import com.esri.ags.tasks.FeatureSet; import com.esri.ags.events.QueryEvent; import com.esri.ags.tasks.Query; import mx.controls.Alert; import mx.rpc.AsyncResponder; private var graphics1:Array; private var graphics2:Array; private function queryCities():void { graphics1 = new Array(); var query:Query = new Query(); query.geometry = myMap.extent; query.where = "FID <> 0"; query.outFields = ["name"]; query.returnGeometry = true; queryCitiesTask.execute(query,new AsyncResponder(queryCitiesResult,onFault)); function queryCitiesResult(result:FeatureSet,token:Object=null):void { for each(var g:Graphic in result.features) { graphics1.push(g); } } } private function queryProvince():void { graphics2 = new Array(); var query:Query = new Query(); query.geometry = myMap.extent; query.where = "name like '%"+txtInput.text+"%'"; query.outFields=["name"]; query.returnGeometry = true; queryProvinceTask.execute(query,new AsyncResponder(queryProvinceResult,onFault)); function queryProvinceResult(result:FeatureSet,token:Object = null):void { var g:Graphic = result.features[0]; graphics2.push(g); geoService.relation(graphics1,graphics2,GeometryService.SPATIAL_REL_WITHIN,null); } } private function onFault(info:Object,token:Object = null):void { Alert.show(info.toString(),"ERROR"); } private function onRelationComplete(event:GeometryServiceEvent):void { var relation:Array = event.relations; myGraphicsLayer.clear(); for(var i:int=0;i<relation.length;i++) { var g:Graphic = relation.graphics1; myGraphicsLayer.add(g); } } ]]> </mx:Script> <esri:GeometryService id="geoService" relationComplete="onRelationComplete(event)" url="http://howiepc:8399/arcgis/rest/services/Geometry/GeometryServer"/> <esri:QueryTask id="queryCitiesTask" url="http://howiepc:8399/arcgis/rest/services/jmuguy/MapServer/1"/> <esri:QueryTask id="queryProvinceTask" url="http://howiepc:8399/arcgis/rest/services/jmuguy/MapServer/2"/> <mx:HBox horizontalAlign="center" width="100%"> <mx:Label id="lab" text="Please input the name" fontWeight="bold"/> <mx:TextInput id="txtInput" text="abc"/> <mx:Button id="btnQuery" label="Query" click="queryProvince()" mouseOver="queryCities()"/> </mx:HBox> <esri:Map id="myMap" scaleBarVisible="false" logoVisible="false"> <esri:ArcGISDynamicMapServiceLayer url="http://howiepc:8399/arcgis/rest/services/jmuguy/MapServer"/> <esri:GraphicsLayer id="myGraphicsLayer"/> </esri:Map> </mx:Application>
public function relation(graphics1:Array, graphics2:Array, spatialRelationship:String, comparisonString:String = null, responder:IResponder = null):AsyncToken
geoService.relation(graphics1,graphics2,GeometrySe rvice.SPATIAL_REL_WITHIN,null);
geoService.relation([graphics1],[graphics2],GeometryService.SPATIAL_REL_WITHIN,null);
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.