Hi All,
Can any help me with code in flex which can intersect two feature class?
Regards
Hi,
Actually I copy pasted that which was in bit n pieces....I dint recognise before putting here. But I have assigned that outside the loop only.
Regards,
Akshay Loya
Hi,
Can you find any other issue?
Regards,
Akshay
Akshay,
With the small portions of code you are sharing I am not able to find your issue.
Hi ,
Sharing my complete code with you.
<?xml version="1.0" encoding="utf-8"?> <viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:viewer="com.esri.viewer.*" xmlns:esri = "http://www.esri.com/2008/ags" widgetConfigLoaded="init()" initialize="basewidget1_initializeHandler(event)"> <viewer:states> <s:State name="queryInput"/> <s:State name="resultsList"/> </viewer:states> <viewer:transitions> <s:Transition autoReverse="true" toState="*"> <s:Fade targets="{[queryInput, resultsList]}"/> </s:Transition> </viewer:transitions> <fx:Style> @namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/mx"; .labelText{ color: #1F038F; fontSize: 12; font-weight: bold; } .labelText1{ color: #000000; fontSize: 12; font-weight: bold; } .labelButtonStyle { corner-radius: 4; chrome-color: #0B610B; color: #FFFFFF; border-visible: true; border-color: #0B2075; border-alpha: 1; font-weight: bold; drop-shadow-visible: true; } s|VScrollBar { skinClass: ClassReference("spark.skins.spark.VScrollBarSkin"); } s|HScrollBar { skinClass: ClassReference("spark.skins.spark.HScrollBarSkin"); } </fx:Style> <fx:Script> <![CDATA[ import com.esri.ags.FeatureSet; import com.esri.ags.Graphic; import com.esri.ags.events.ExtentEvent; import com.esri.ags.events.GeometryServiceEvent; import com.esri.ags.events.GeoprocessorEvent; import com.esri.ags.events.GraphicEvent; import com.esri.ags.geometry.Extent; import com.esri.ags.geometry.Geometry; import com.esri.ags.geometry.MapPoint; import com.esri.ags.geometry.Polygon; import com.esri.ags.geometry.Polyline; import com.esri.ags.layers.GraphicsLayer; import com.esri.ags.symbols.PictureMarkerSymbol; import com.esri.ags.tasks.QueryTask; import com.esri.ags.tasks.supportClasses.Query; import com.esri.ags.utils.GraphicUtil; import mx.collections.ArrayCollection; import mx.collections.ArrayList; import mx.collections.ICollectionView; import mx.collections.IViewCursor; import mx.controls.Alert; import mx.controls.dataGridClasses.DataGridColumn; import mx.core.FlexGlobals; import mx.events.FlexEvent; import mx.events.ListEvent; import mx.managers.PopUpManager; import mx.rpc.AsyncResponder; import mx.rpc.AsyncToken; import mx.rpc.Responder; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.soap.WebService; import mx.states.AddItems; import spark.effects.animation.SimpleMotionPath; import spark.events.IndexChangeEvent; import flashx.textLayout.elements.BreakElement; import org.alivepdf.drawing.Blend; import org.alivepdf.drawing.Joint; import org.alivepdf.layout.Align; import org.alivepdf.layout.Layout; import org.alivepdf.pages.Page; import org.alivepdf.viewing.WindowUI; private const ICON_URL:String = "assets/images/"; private var adminType:String = new String(); private var arrAdminType:Array = new Array(); [Bindable] private var arrAdminTypeCollection:ArrayCollection; public var queryGraphic:GraphicsLayer = new GraphicsLayer(); private var strApplicableTo:String = new String(); private var DCode:String = new String(); private var DCode1:String = new String(); private var BCode:String = new String(); private var PCode:String = new String(); public var ws:WebService = new WebService(); private var mapLayer:String = new String(); private var proxyurl:String = new String(); private var BlockCode:String = new String(); private var PanchayatCode:String = new String(); public var method:String = new String(); private var progresspopup:ProgressPopup = new ProgressPopup(); private var graphisB:GraphicsLayer= new GraphicsLayer(); private var strCriteriaOption:String = new String(); private var DistrictCode:String = new String(); public var tblData:Object= new Object(); private var arrCollDistrictCode:ArrayCollection; private var arrDistCode:ArrayCollection=new ArrayCollection(); private var arrMDistColl:ArrayCollection = new ArrayCollection(); private var arrCollDistrictName:ArrayCollection; private var arrCollBlockCode:ArrayCollection; private var arrCollBlockName:ArrayCollection; private var arrCollPanchayatCode:ArrayCollection; private var arrCollPanchayatName:ArrayCollection; private var responder:mx.rpc.Responder; private var arrQueryName:ArrayCollection = new ArrayCollection(); private var Administrative:String = new String(); private var geometryMain:Geometry=new Geometry(); [Bindable]public var Units:ArrayCollection = new ArrayCollection( [ { data: GeometryService.UNIT_METER, label: "Meter" }, { data: GeometryService.UNIT_KILOMETER, label: "Kilometer" } ]); private var strTargetLayer:String = new String(); private var sqlquerywithin:String=new String(); private var sqlquerynotwithin:String=new String(); private var strAliasName:String = new String(); private var strTargetLayerID:String = new String(); private var strQuery:String = new String(); private var strSourceLayer:String = new String(); private var strSourceID:String = new String(); private var strOperators:String = new String(); private var strOutputCol:String = new String(); private var strFilter:String = new String(); private var StrFiltAdmin:String= new String (); private var StrFiltAdminBlock:String= new String (); private var StrFiltAdminPanchayat:String= new String (); private var StrFiltAdminCode:String= new String (); private var FilterDistBlockPanch:String= new String (); private var intCountCode:int; private var i_redalarm:PictureMarkerSymbol = new PictureMarkerSymbol("assets/images/Red_glow.swf", 20, 20); private var districtsLoaded:int = 0; public var CurrentGeom:Geometry = new Geometry(); //Initial widget load ////// 19/02/2015 //District symbols private var distBorderSymbol:SimpleLineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,0x2EFEF7,1,4); private var distFillSymbol:SimpleFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,0xFA5858,0,distBorderSymbol); private var distGraphicsLayer:GraphicsLayer = new GraphicsLayer(); private var districtFeatureSet:FeatureSet = new FeatureSet(); private var fullextent:Extent = new Extent(); ////////// private function init():void { wSpatialQuery.widgetTitle="SpatialQuery"; if(configXML) { adminType = configXML.AdminType; arrAdminType = adminType.split(","); mapLayer = configXML.MapLayer; DistrictCode = configXML.DistrictCode; proxyurl= configXML.proxyurl; BlockCode= configXML.BlockCode; PanchayatCode= configXML.PanchayatCode; } arrAdminTypeCollection = new ArrayCollection(arrAdminType); ddlAdminType.dataProvider = arrAdminTypeCollection; ws.wsdl = configData.webServiceConfig; fullextent = map.initialExtent; distGraphicsLayer.id = "DtGraphicLayer"; map.addLayer(distGraphicsLayer); ////Code to remove this graphic layer from the map object //Note the layer must be already present in the map /* var layer:Layer = map.getLayer("DtGraphicLayer"); map.removeLayer(layer); */ ///// } //Change handler event for drop down of AOI protected function ddlAdminType_changeHandler(event:IndexChangeEvent):void { if (ddlAdminType.selectedItem == "State") { strApplicableTo = "State"; ddlDistorLAorPA.enabled=false; ddlBlockorTehsil.enabled=false; ddlPanchayat.enabled=false; DistorLAorPAGroup.enabled=false; BlockorTehsilGroup.enabled=false; PanchayatGroup.enabled=false; } if (ddlAdminType.selectedItem == "District" || ddlAdminType.selectedItem == "PA" ||ddlAdminType.selectedItem == "LA") { strApplicableTo = "District|Block|PA|LA|Tehsil"; method = "PopulateDistrict"; ws.loadWSDL(); ws[method].addEventListener(ResultEvent.RESULT, PopulateDistrictResult); ws[method].addEventListener(FaultEvent.FAULT, PopulateDistrictFault); ws.getOperation(method).send(); ddlDistorLAorPA.enabled=true; ddlBlockorTehsil.enabled=false; ddlPanchayat.enabled=false; DistorLAorPAGroup.enabled=true; BlockorTehsilGroup.enabled=false; PanchayatGroup.enabled=false; } if (ddlAdminType.selectedItem == "Block") { strApplicableTo = "Block"; method = "PopulateDistrict"; ws.loadWSDL(); ws[method].addEventListener(ResultEvent.RESULT, PopulateDistrictResult); ws[method].addEventListener(FaultEvent.FAULT, PopulateDistrictFault); ws.getOperation(method).send(); ddlDistorLAorPA.enabled=true; ddlBlockorTehsil.enabled=true; ddlPanchayat.enabled=false; DistorLAorPAGroup.enabled=true; BlockorTehsilGroup.enabled=true; PanchayatGroup.enabled=false; } if (ddlAdminType.selectedItem == "Panchayat") { strApplicableTo = "Panchayat"; method = "PopulateDistrict"; ws.loadWSDL(); ws[method].addEventListener(ResultEvent.RESULT, PopulateDistrictResult); ws[method].addEventListener(FaultEvent.FAULT, PopulateDistrictFault); ws.getOperation(method).send(); ddlDistorLAorPA.enabled=true; ddlBlockorTehsil.enabled=true; ddlPanchayat.enabled=true; DistorLAorPAGroup.enabled=true; BlockorTehsilGroup.enabled=true; PanchayatGroup.enabled=true; } method = "SpatialQuerySector"; ws.loadWSDL(); ws[method].addEventListener(ResultEvent.RESULT, SectorResult); ws[method].addEventListener(FaultEvent.FAULT, SectorFault); ws.getOperation(method).send(strApplicableTo); ddlBlockorTehsil.selectedIndex=-1; ddlDistorLAorPA.selectedIndex=-1; ddlPanchayat.selectedIndex=-1; } //Service call reult event protected function PopulateDistrictResult(event:ResultEvent):void { arrCollDistrictCode = new ArrayCollection(); arrCollDistrictName = new ArrayCollection(); if (event.result != null) { tblData=event.result.Tables.Table; for each (var obj:Object in tblData.Rows) { arrCollDistrictCode.addItem(obj[tblData.Columns[0]]); arrCollDistrictName.addItem(obj[tblData.Columns[1]]); } } else { Alert.show(resourceManager.getString('ViewerStrings', 'SearchAlert1')); } ddlDistorLAorPA.dataProvider = arrCollDistrictName; method = "SpatialQuerySector"; ws.loadWSDL(); ws[method].addEventListener(ResultEvent.RESULT, SectorResult); ws[method].addEventListener(FaultEvent.FAULT, SectorFault); ws.getOperation(method).send(strApplicableTo); } //service call fault event protected function PopulateDistrictFault(event:FaultEvent):void { Alert.show("Service temporarily unavailable. Please try again","Information"); method = ""; } protected function SectorResult(event:ResultEvent):void { var arrSectorName:ArrayCollection = new ArrayCollection(); if (event.result != null) { tblData=event.result.Tables.Table; for each (var obj:Object in tblData.Rows) { arrSectorName.addItem(obj[tblData.Columns[0]]); } } else { Alert.show(resourceManager.getString('ViewerStrings', 'SearchAlert1')); } ddlFirstSector.dataProvider = arrSectorName; method = ""; } protected function SectorFault(event:FaultEvent):void { Alert.show("Service temporarily unavailable. Please try again","Information"); method = ""; } //Change handler for district , PA etc protected function ddlDistorLAorPA_changeHandler(event:IndexChangeEvent):void { if (ddlDistorLAorPA.enabled == true) { intCountCode=1; var selIndices:Vector.<int> = event.currentTarget.selectedIndices; //var selItems:Vector.<Object> = event.currentTarget.selectedItems; var numItems:Number = selIndices.length; arrDistCode.removeAll(); distGraphicsLayer.clear(); for (var i:Number = 0; i<numItems; i++) { arrDistCode.addItem(arrCollDistrictCode.getItemAt(selIndices)); } StrFiltAdmin=arrDistCode.toString(); //DCode="District_DCP_Code IN (" + StrFiltAdmin + ")"; //For this DCode String District_DCP_Code is coming from GIS database districtFeatureSet = index.districtFeatureSet; if(districtFeatureSet.features != null) { for (var j:Number = 0; j<arrDistCode.length; j++) { for(var x:int=0;x<districtFeatureSet.features.length;x++) { if(arrDistCode== districtFeatureSet.features { var graphic:Graphic = districtFeatureSet.features.attributes.District_DCP_Code) ; graphic.symbol = distFillSymbol; distGraphicsLayer.add(graphic); //DCode= "District_DCP_Code='" + arrDistCode+ "'"; break; } } } var graphicProvider:ArrayCollection = distGraphicsLayer.graphicProvider as ArrayCollection; var graphicsExtent:Extent = GraphicUtil.getGraphicsExtent(graphicProvider.toArray()); if (graphicsExtent) { map.extent = graphicsExtent; map.zoomOut(); } } else { intCountCode=1; var queryTaskDistrict:QueryTask = new QueryTask(); queryTaskDistrict.url=DistrictCode; queryTaskDistrict.useAMF= false; var queryDistrict:Query= new Query(); queryDistrict.outSpatialReference=map.spatialReference; queryDistrict.returnGeometry=true; queryDistrict.outFields=['*']; queryDistrict.where= "District_DCP_Code='" + arrCollDistrictCode.getItemAt(ddlDistorLAorPA.selectedIndex) + "'"; //DCode= queryDistrict.where; var selIndices:Vector.<int> = event.currentTarget.selectedIndices; //var selItems:Vector.<Object> = event.currentTarget.selectedItems; var numItems:Number = selIndices.length; arrDistCode.removeAll(); distGraphicsLayer.clear(); for (var i:Number = 0; i<numItems; i++) { arrDistCode.addItem(arrCollDistrictCode.getItemAt(selIndices)); } StrFiltAdmin=arrDistCode.toString(); //DCode="District_DCP_Code IN (" + StrFiltAdmin + ")"; //arrDistCode.push("'"+arrCollDistrictCode.getItemAt(ddlDistorLAorPA.selectedIndex)+"'"); queryTaskDistrict.execute(queryDistrict, new AsyncResponder(onResult, onFault)); function onResult(featureSet:FeatureSet, token:Object = null):void { if (featureSet.features.length == 0) { Alert.show(resourceManager.getString('ViewerStrings', 'SearchAlert3')); } else { var graphic:Graphic = featureSet.features[0]; graphic.symbol = distFillSymbol; distGraphicsLayer.add(graphic); var graphicsExtent:Extent = GraphicUtil.getGraphicsExtent(featureSet.features); if (graphicsExtent) { map.extent = graphicsExtent; map.zoomOut(); } } } function onFault(info:Object, token:Object = null):void { Alert.show("Service temporarily unavailable. Please try again","Information"); } } } if (ddlBlockorTehsil.enabled == true) { method = "PopulateBlock"; ws.loadWSDL(); ws[method].addEventListener(ResultEvent.RESULT, PopulateBlockResult); ws[method].addEventListener(FaultEvent.FAULT, PopulateBlockFault); ws.getOperation(method).send(arrCollDistrictCode.getItemAt(ddlDistorLAorPA.selectedIndex)); } } //Service call Result event protected function PopulateBlockResult(event:ResultEvent):void { arrCollBlockCode = new ArrayCollection(); arrCollBlockName = new ArrayCollection(); if (event.result != null) { tblData=event.result.Tables.Table; for each (var obj:Object in tblData.Rows) { arrCollBlockCode.addItem(obj[tblData.Columns[0]]); arrCollBlockName.addItem(obj[tblData.Columns[1]]); } } else { Alert.show(resourceManager.getString('ViewerStrings', 'SearchAlert1')); } ddlBlockorTehsil.dataProvider = arrCollBlockName; } //Service call fault event protected function PopulateBlockFault(event:FaultEvent):void { Alert.show("Service temporarily unavailable. Please try again","Information"); method = ""; } protected function ddlBlockorTehsil_changeHandler(event:IndexChangeEvent):void { if (ddlBlockorTehsil.enabled == true) { intCountCode=2; var queryTaskBlock:QueryTask = new QueryTask(); queryTaskBlock.url=BlockCode; queryTaskBlock.useAMF= false; var queryBlock:Query= new Query(); queryBlock.outSpatialReference=map.spatialReference; queryBlock.returnGeometry=true; queryBlock.outFields=['*']; queryBlock.where= "DCPBlockCode ='" + arrCollBlockCode.getItemAt(ddlBlockorTehsil.selectedIndex) + "'"; StrFiltAdminBlock= arrCollBlockCode.getItemAt(ddlBlockorTehsil.selectedIndex).toString(); //BCode="DCPBlockCode IN (" + StrFiltAdminBlock + ")"; //For this BCode String DCPBlockCode is coming from GIS database //BCode="DCPBlockCode IN (" + StrFiltAdminBlock + ")"; queryTaskBlock.execute(queryBlock, new AsyncResponder(onResult, onFault)); function onResult(featureSet:FeatureSet, token:Object = null):void { if (featureSet.features.length == 0) { Alert.show(resourceManager.getString('ViewerStrings', 'SearchAlert3')); } else { var graphicsExtent:Extent = GraphicUtil.getGraphicsExtent(featureSet.features); if (graphicsExtent) { map.extent = graphicsExtent; geometryMain=graphicsExtent; } } } function onFault(info:Object, token:Object = null):void { Alert.show("Service temporarily unavailable. Please try again","Information"); } } if (ddlPanchayat.enabled == true) { method = "PopulatePanchayat"; ws.loadWSDL(); ws[method].addEventListener(ResultEvent.RESULT, PopulatePanchayatResult); ws[method].addEventListener(FaultEvent.FAULT, PopulatePanchayatFault); ws.getOperation(method).send(arrCollDistrictCode.getItemAt(ddlDistorLAorPA.selectedIndex),arrCollBlockCode.getItemAt(ddlBlockorTehsil.selectedIndex)); } } protected function PopulatePanchayatResult(event:ResultEvent):void { arrCollPanchayatCode = new ArrayCollection(); arrCollPanchayatName = new ArrayCollection(); if (event.result != null) { tblData=event.result.Tables.Table; for each (var obj:Object in tblData.Rows) { arrCollPanchayatCode.addItem(obj[tblData.Columns[0]]); arrCollPanchayatName.addItem(obj[tblData.Columns[1]]); } } else { Alert.show(resourceManager.getString('ViewerStrings', 'SearchAlert1')); } ddlPanchayat.dataProvider = arrCollPanchayatName; } protected function PopulatePanchayatFault(event:FaultEvent):void { Alert.show(event.toString()); method = ""; } protected function ddlPanchayat_changeHandler(event:IndexChangeEvent):void { if (ddlPanchayat.enabled == true) { intCountCode=3; var queryTaskPanchayat:QueryTask = new QueryTask(); queryTaskPanchayat.url=PanchayatCode; queryTaskPanchayat.useAMF= false; var queryPanchayat:Query= new Query(); queryPanchayat.outSpatialReference=map.spatialReference; queryPanchayat.returnGeometry=true; queryPanchayat.outFields=['*']; queryPanchayat.where= "DCP_Panchayat_Code ='" + arrCollPanchayatCode.getItemAt(ddlPanchayat.selectedIndex) + "'"; StrFiltAdminPanchayat= arrCollPanchayatCode.getItemAt(ddlPanchayat.selectedIndex).toString(); //PCode="DCP_Panchayat_Code IN ('" + StrFiltAdminPanchayat + "')"; //PCode="DCP_Panchayat_Code IN (" + StrFiltAdminPanchayat + ")"; //For this PCode String DCP_Panchayat_Code is coming from GIS database queryTaskPanchayat.execute(queryPanchayat, new AsyncResponder(onResult, onFault)); function onResult(featureSet:FeatureSet, token:Object = null):void { if (featureSet.features.length == 0) { Alert.show(resourceManager.getString('ViewerStrings', 'SearchAlert3')); } else { var graphicsExtent:Extent = GraphicUtil.getGraphicsExtent(featureSet.features); if (graphicsExtent) { map.extent = graphicsExtent; geometryMain=graphicsExtent; } } } function onFault(info:Object, token:Object = null):void { Alert.show("Service temporarily unavailable. Please try again","Information"); } } } protected function ddlFirstSector_changeHandler(event:IndexChangeEvent):void { method = "SpatialQueryName"; ws.loadWSDL(); ws[method].addEventListener(ResultEvent.RESULT, SpatialQueryNameResult); ws[method].addEventListener(FaultEvent.FAULT, SpatialQueryNameFault); ws.getOperation(method).send(strApplicableTo,ddlFirstSector.selectedItem); } protected function SpatialQueryNameResult(eventThemeName:ResultEvent):void { arrQueryName = new ArrayCollection(); if (eventThemeName.result != null) { var tblDataThemeName:Object = eventThemeName.result.Tables.Table; for each (var obj:Object in tblDataThemeName.Rows) { arrQueryName.addItem(obj[tblDataThemeName.Columns[0]]); } } else { Alert.show(resourceManager.getString('ViewerStrings', 'SearchAlert1')); } ddlFirstQuery.dataProvider = arrQueryName; method = ""; } protected function SpatialQueryNameFault(event:FaultEvent):void { Alert.show("Service temporarily unavailable. Please try again","Information"); } protected function ddlFirstQuery_changeHandler(event:IndexChangeEvent):void { method = "SpatialQueryConfig"; ws.loadWSDL(); ws[method].addEventListener(ResultEvent.RESULT, SpatialQueryConfigResult); ws[method].addEventListener(FaultEvent.FAULT, SpatialQueryConfigFault); ws.getOperation(method).send(strApplicableTo,ddlFirstSector.selectedItem, ddlFirstQuery.selectedItem); } private function showProgress(message:String,title:String):void{ if(progresspopup.isPopUp){ progresspopup.message = message; progresspopup.txtprogresstitle = title; } else{ var parent:Sprite= Sprite(FlexGlobals.topLevelApplication); PopUpManager.addPopUp(progresspopup,parent,false); PopUpManager.centerPopUp(progresspopup); progresspopup.message = message; progresspopup.txtprogresstitle = title; } } private function hideProgress():void{ PopUpManager.removePopUp(progresspopup); } //Cofig table data loaded in variables protected function SpatialQueryConfigResult(event:ResultEvent):void { if (event.result != null) { var tblData:Object = event.result.Tables.Table; for each (var obj:Object in tblData.Rows) { strTargetLayer = obj[tblData.Columns[0]]; strTargetLayerID = obj[tblData.Columns[1]]; strSourceLayer = obj[tblData.Columns[2]]; strSourceID = obj[tblData.Columns[3]]; strOperators = obj[tblData.Columns[4]]; StrFiltAdminCode=obj[tblData.Columns[7]]; strOutputCol = obj[tblData.Columns[10]]; strCriteriaOption = obj[tblData.Columns[9]]; strFilter = obj[tblData.Columns[12]]; sqlquerywithin=obj[tblData.Columns[16]]; sqlquerynotwithin=obj[tblData.Columns[17]]; strAliasName=obj[tblData.Columns[18]]; FilterDistBlockPanch=obj[tblData.Columns[19]]; strAliasName=strAliasName.replace(", ",","); FilterDistBlockPanch=FilterDistBlockPanch.replace(", ",","); } var Target:String = new String(); var Source:String = new String(); var array:Array = FilterDistBlockPanch.split(","); Source = array[0]; Target = array[1]; if (ddlAdminType.selectedItem == "District" || ddlAdminType.selectedItem == "PA" ||ddlAdminType.selectedItem == "LA") { //Administrative="dbo.DISTRICT_POLY" //District table in GIS database,Having District code in it. Administrative="dbo.DISTRICT" DCode= Target + " IN (" + StrFiltAdmin + ")"; DCode1= Source + " IN (" + StrFiltAdmin + ")"; } if (ddlAdminType.selectedItem == "Block") { Administrative="dbo.BLOCK_POLY" //Block table in GIS database,Having Block code in it. //Administrative="dbo.BLOCK" DCode= Target + " IN (" + StrFiltAdminBlock + ")"; DCode1= Source + " IN (" + StrFiltAdminBlock + ")"; } if (ddlAdminType.selectedItem == "Panchayat") { Administrative="dbo.PANCHAYAT_POLY" //Panchayat table in GIS database,Having Panchayat code in it. //Administrative="dbo.PANCHAYAT" DCode= Target + " IN (" + StrFiltAdminPanchayat + ")"; DCode1= Source + " IN ('" + StrFiltAdminPanchayat + "')"; } if(strFilter == "Yes") { FirstCriteria.enabled=true; }else { //FirstCriteria.enabled=false; txtFirstCriteria.enabled=false; cmbBuffer.enabled=false; } } else { Alert.show(resourceManager.getString('ViewerStrings', 'SearchAlert1')); } } protected function SpatialQueryConfigFault(event:FaultEvent):void { Alert.show("Service temporarily unavailable. Please try again","Information"); } //Reset event protected function Reset():void { showStateTextSearch(); arrAdminType = null; txtFirstCriteria.text = ""; ddlAdminType.selectedIndex=-1; ddlBlockorTehsil.selectedIndex=-1; ddlDistorLAorPA.selectedIndex=-1; ddlFirstCriteria.selectedIndex=-1; ddlFirstQuery.selectedIndex=-1; ddlFirstSector.selectedIndex=-1; ddlPanchayat.selectedIndex=-1; map.extent=map.initialExtent; queryGraphic.clear(); FirstCriteria.enabled=true; txtFirstCriteria.text = ""; map.removeLayer(queryGraphic); strSourceID=""; strSourceLayer=""; strFilter=""; strTargetLayer=""; strOperators=""; strTargetLayerID=""; strQuery=""; dg.visible=false; ddlAdminType.selectedIndex=-1; ddlBlockorTehsil.selectedIndex=-1; ddlDistorLAorPA.selectedIndex=-1; ddlFirstCriteria.selectedIndex=-1; ddlFirstQuery.selectedIndex=-1; ddlFirstSector.selectedIndex=-1; ddlPanchayat.selectedIndex=-1; cursorManager.removeBusyCursor(); Countfeature.text="Total no of records : 0"; ddlDistorLAorPA.enabled=false; ddlBlockorTehsil.enabled=false; ddlPanchayat.enabled=false; DistorLAorPAGroup.enabled=false; BlockorTehsilGroup.enabled=false; PanchayatGroup.enabled=false; distGraphicsLayer.clear(); map.extent = fullextent; hideProgress(); } //Spatial query search button event var query:Query = new Query(); var QueryTk:QueryTask = new QueryTask(); protected function btnSearch_clickHandler(event:MouseEvent):void { cursorManager.setBusyCursor(); queryGraphic.clear(); dg.dataProvider=[]; var bufdistance:Number=0; showProgress("Processing.......Please wait", "Information"); if(ddlFirstCriteria.selectedIndex==0) { method = "SpatialWithin"; ws.loadWSDL(); ws[method].addEventListener(ResultEvent.RESULT, QueryResult); ws[method].addEventListener(FaultEvent.FAULT, QueryFault); if(strFilter.toUpperCase()=="YES") { if(cmbBuffer.selectedIndex!=-1) { if(cmbBuffer.selectedIndex==1) { bufdistance=parseInt(txtFirstCriteria.text) * 1000; } else { bufdistance=parseInt(txtFirstCriteria.text); } } if(cmbBuffer.selectedIndex==-1) { bufdistance=0; } /*if(strCriteriaOption.toUpperCase()=="YES") { having="YES"; } if(strCriteriaOption.toUpperCase()=="NO") { having="NO"; }*/ //ws.getOperation(method).send(sqlquerywithin,sqlquerynotwithin,bufdistance.toString(),having); if (ddlAdminType.selectedItem == "District" || ddlAdminType.selectedItem == "PA" ||ddlAdminType.selectedItem == "LA") { ws.getOperation(method).send(sqlquerywithin,sqlquerynotwithin,bufdistance.toString(),Administrative,DCode); } else if (ddlAdminType.selectedItem == "Block") { ws.getOperation(method).send(sqlquerywithin,sqlquerynotwithin,bufdistance.toString(),Administrative,DCode); } else if (ddlAdminType.selectedItem == "Panchayat") { ws.getOperation(method).send(sqlquerywithin,sqlquerynotwithin,bufdistance.toString(),Administrative,DCode); } } else if (strFilter.toUpperCase()=="NO") { var queryT:QueryTask = new QueryTask(); queryT.url = "url"; queryT.useAMF= false; var queryB:Query = new Query(); queryB.outSpatialReference = map.spatialReference; queryB.returnGeometry = true; queryB.outFields = ["*"]; queryB.where= "DCPDistrictCode = 1732"; queryT.execute(queryB, new AsyncResponder(onResultT, onFaultT)); function onResultT(featureSetB:FeatureSet, token:Object = null):void { var graphicProvider1:ArrayCollection = new ArrayCollection(); if (featureSetB.features.length == 0) { Alert.show(resourceManager.getString('ViewerStrings', 'SearchAlert3')); } else { /*for each(var myFirstGraphic:Graphic in featureSetB.features) { var arrtest:Array= new Array; arrtest.push(myFirstGraphic.geometry); }*/ //responder = new mx.rpc.Responder(union,union_fault); // myGeometryService.union(arrtest,responder); var graphExtent:Extent = GraphicUtil.getGraphicsExtent(featureSetB.features); doQuery(graphExtent); /* query.geometry = arrtest; query.outFields = ["*"]; query.outSpatialReference = map.spatialReference; query.returnGeometry = true; query.spatialRelationship = Query.SPATIAL_REL_INTERSECTS; QueryTk.url = "http://164.100.196.130/spcgis/rest/services/MPSPC/SPCMP10_WebApp/MapServer/52"; QueryTk.useAMF = false; QueryTk.execute(query,new AsyncResponder(QueryIntersect,QueryIntersectFault));*/ } } function onFaultT(info:Object, token:Object = null):void { Alert.show("Service temporarily unavailable. Please try again","Information"); } /*if (ddlAdminType.selectedItem == "District" || ddlAdminType.selectedItem == "PA" ||ddlAdminType.selectedItem == "LA") { ws.getOperation(method).send(sqlquerywithin,sqlquerynotwithin,"0",Administrative,DCode); } else if (ddlAdminType.selectedItem == "Block") { ws.getOperation(method).send(sqlquerywithin,sqlquerynotwithin,"0",Administrative,DCode); } else if (ddlAdminType.selectedItem == "Panchayat") { ws.getOperation(method).send(sqlquerywithin,sqlquerynotwithin,"0",Administrative,DCode); }*/ } else { Alert.show("Plesase correct query configuration"); cursorManager.removeBusyCursor(); hideProgress(); } } if(ddlFirstCriteria.selectedIndex==1) { method = "SpatialNotWithin"; ws.loadWSDL(); ws[method].addEventListener(ResultEvent.RESULT, QueryResult); ws[method].addEventListener(FaultEvent.FAULT, QueryFault); if(strFilter.toUpperCase()=="YES") { if(cmbBuffer.selectedIndex!=-1) { if(cmbBuffer.selectedIndex==1) { bufdistance=parseInt(txtFirstCriteria.text) * 1000; } else { bufdistance=parseInt(txtFirstCriteria.text); } } if(cmbBuffer.selectedIndex==-1) { bufdistance=0; } /*if(strCriteriaOption.toUpperCase()=="YES") { having="YES"; } if(strCriteriaOption.toUpperCase()=="NO") { having="NO"; }*/ showProgress("Processing.......Please wait", "Information"); if (ddlAdminType.selectedItem == "District" || ddlAdminType.selectedItem == "PA" ||ddlAdminType.selectedItem == "LA") { ws.getOperation(method).send(sqlquerywithin,sqlquerynotwithin,bufdistance.toString(),Administrative,DCode,DCode1); } else if (ddlAdminType.selectedItem == "Block") { ws.getOperation(method).send(sqlquerywithin,sqlquerynotwithin,bufdistance.toString(),Administrative,DCode,DCode1); } else if (ddlAdminType.selectedItem == "Panchayat") { ws.getOperation(method).send(sqlquerywithin,sqlquerynotwithin,bufdistance.toString(),Administrative,DCode,DCode1); } } else if (strFilter.toUpperCase()=="NO") { if (ddlAdminType.selectedItem == "District" || ddlAdminType.selectedItem == "PA" ||ddlAdminType.selectedItem == "LA") { ws.getOperation(method).send(sqlquerywithin,sqlquerynotwithin,"0",Administrative,DCode,DCode1); } else if (ddlAdminType.selectedItem == "Block") { ws.getOperation(method).send(sqlquerywithin,sqlquerynotwithin,"0",Administrative,DCode,DCode1); } else if (ddlAdminType.selectedItem == "Panchayat") { ws.getOperation(method).send(sqlquerywithin,sqlquerynotwithin,"0",Administrative,DCode,DCode1); } } else { Alert.show("Plesase correct query configuration"); cursorManager.removeBusyCursor(); hideProgress(); } } } /*protected function union(event:) { doQuery(event.rings as Geometry); } protected function union_fault(event:FaultEvent) { Alert.show("Service temporarily unavailable. Please try again","Information"); cursorManager.removeBusyCursor(); }*/ protected function doQuery(geom:Extent):void { query.geometry = geom; query.outFields = ["*"]; query.outSpatialReference = map.spatialReference; query.returnGeometry = true; query.spatialRelationship = Query.SPATIAL_REL_INTERSECTS; QueryTk.url = "url"; QueryTk.useAMF = false; QueryTk.execute(query,new AsyncResponder(QueryIntersect,QueryIntersectFault)); function QueryIntersect(featureSetSpa:FeatureSet, token:Object = null):void { if (featureSetSpa.features.length = 0) { Alert.show("No Records found"); cursorManager.removeBusyCursor(); } else { var arrObjectId:Array=new Array(); var strObjectId:String= new String(); for(var i:int=0;i<featureSetSpa.features.length;i++) { arrObjectId.push("'" +FeatureSet+ "'"); } strObjectId = arrObjectId.toString() ; //arr = QueryTk.executeLastResult.attributes; /*for each (var myGraphic:Graphic in featureSetSpatial.features) { }*/ } } function QueryIntersectFault(featureSet:FeatureSet, token:Object = null):void { Alert.show("Service temporarily unavailable. Please try again","Information"); } } // Service call result event of spatial query protected function QueryResult(event:ResultEvent):void { try { //var arrFilterCode:ArrayCollection(); /*var arrFilterCode:Array=new Array(); arrFilterCode= StrFiltAdminCode.split(','); var strFilter:String= new String(); if (intCountCode==1) { strFilter= arrFilterCode[0]; } else if (intCountCode==1) { strFilter= arrFilterCode[1]; } else { strFilter= arrFilterCode[2]; }*/ if (event.result != null) { var arrObjectId:Array=new Array(); var strObjectId:String= new String(); for(var i:int=0;i<event.result .length;i++) { arrObjectId.push("'" +event.result+ "'"); } strObjectId = arrObjectId.toString() ; /*strObjectId.replace(""",""); for(var i:int=0;i<arrObjectId.length;i++) { strObjectId = strObjectId + ", '" + arrObjectId + "'"; } */ if (arrObjectId.length>0) { var spatialQuery:Query= new Query(); spatialQuery.outFields = [strOutputCol]; //spatialQuery.geometry = geometryMain; spatialQuery.returnGeometry = true; spatialQuery.outSpatialReference = map.spatialReference; //spatialQuery.where="OBJECTID IN ("+strObjectId+") and "+ strFilter +" in (" +StrFiltAdmin+ ")"; spatialQuery.where="OBJECTID IN (" + strObjectId + ")"; var spatialQueryTask:QueryTask = new QueryTask(); spatialQueryTask.url = mapLayer + "/" + strSourceID; spatialQueryTask.useAMF = false; spatialQueryTask.execute(spatialQuery, new AsyncResponder(onResultS, onFaultS)); function onResultS(featureSetSpatial:FeatureSet, token:Object = null):void { if (featureSetSpatial.features.length>0) { if (featureSetSpatial.features.length >= 1000) { Alert.show(resourceManager.getString('ViewerStrings', 'SearchAlert6')); cursorManager.removeBusyCursor(); hideProgress(); } else { result=featureSetSpatial; var geom:Geometry; var count:Number=0; for each (var myGraphic:Graphic in featureSetSpatial.features) { switch (myGraphic.geometry.type) { case Geometry.MAPPOINT: { myGraphic.symbol = i_redalarm; break; } case Geometry.POLYLINE: { myGraphic.symbol = sls; break; } case Geometry.POLYGON: { myGraphic.symbol = sfs; break; } } queryGraphic.add(myGraphic); count++; } map.addLayer(queryGraphic); Countfeature.text="Total no of records : " + count.toString(); dg.visible=true; dg.dataProvider = featureSetSpatial.attributes; var arrayAlias:ArrayCollection=new ArrayCollection(strAliasName.split(",").sort()); for(var i:int = 0; i < dg.columns.length; i++) { var col:DataGridColumn = DataGridColumn(dg.columns); // col.headerText=arrayAlias.getItemAt(i).toString(); } showStateResults(); wSpatialQuery.selectedTitlebarButtonIndex = 1; cursorManager.removeBusyCursor(); hideProgress(); } } else { Alert.show("No Record Found"); cursorManager.removeBusyCursor(); hideProgress(); } } function onFaultS(info:Object, token:Object = null):void { Alert.show(info.faultString + "\n\n" + info.faultDetail, "queryTask fault " + info.faultCode); cursorManager.removeBusyCursor(); } } else { Alert.show("No Records found"); cursorManager.removeBusyCursor(); hideProgress(); } } else { Alert.show("Selection Error"); cursorManager.removeBusyCursor(); hideProgress(); } } catch(e:Error) { Alert.show("No Record Found"); cursorManager.removeBusyCursor(); hideProgress(); } } protected function QueryFault(event:FaultEvent):void { Alert.show("Service temporarily unavailable. Please try again","Information"); cursorManager.removeBusyCursor(); } protected function btnExport_clickHandler(event:MouseEvent):void { PopUpManager.addPopUp(ttlExl, this, true); PopUpManager.centerPopUp(ttlExl); } //excel export public function GridToExcel (grid:Object):void { var resultLabel:String=new String(); var dataSource:ICollectionView = grid.dataProvider as ICollectionView; var headers:String = ""; var tabDelimiter:String = "\t"; var newLine:String = "\n"; var pageStart:String = newLine + newLine; for each (var hcol:Object in grid.columns)//coltypes differe between DG & ADG { if (headers.length > 0)//avoid firstcolumn having extra delimeter headers += tabDelimiter; headers += hcol.headerText.toUpperCase(); } headers += newLine; //populate data var cursor:IViewCursor = dataSource.createCursor(); var data:String = ""; var item:Object; var itemData:String; do { item = cursor.current; itemData = ""; for each (var col:Object in grid.columns) { if (itemData.length > 0) //avoid firstcolumn having extra delimeter itemData += tabDelimiter; itemData += col.itemToLabel(item); } data += itemData +newLine; }while (cursor.moveNext()) var fr:FileReference = new FileReference(); fr.save(pageStart + headers + data,"Result.xls"); } protected function btnOK_clickHandler(event:MouseEvent):void { PopUpManager.removePopUp(ttlExl); GridToExcel(dg); } protected function myTextArea_enterHandler(event:FlexEvent):void { PopUpManager.removePopUp(ttlExl); GridToExcel(dg); } //Export to pdf import org.alivepdf.pdf.PDF; import org.alivepdf.layout.Orientation; import org.alivepdf.layout.Size; import org.alivepdf.layout.Unit; import org.alivepdf.display.Display; import org.alivepdf.saving.Method; import org.alivepdf.colors.RGBColor; import org.alivepdf.images.ImageFormat; import org.alivepdf.data.GridColumn; import org.alivepdf.data.Grid; //add a page to the PDF and set the title, footer, and frame //x, y, width and height are set up for A4 format in landscape private function setPDFPageElements(docPDF:PDF, w:Number, h:Number, title:String, footerLeft:String, footerRight:String):void { docPDF.addPage(); docPDF.addText(title, 30, 15); docPDF.setTitle(title); docPDF.addText(footerLeft, 20, 200); docPDF.addText(footerRight, 30, 200); docPDF.lineStyle(new RGBColor (0x000000), 1, .3, 1,CapsStyle.SQUARE, JointStyle.MITER ); //docPDF.drawRect(new Rectangle (30,30,220,150)); } //create PDF document //it can include map, chart and data, depending on user selections private function doPrintPDF():void { var myPDF:PDF; var w:Number = 582; //approximate number of points fitting on A4 in landscape (width) var h:Number = 400 - 80; //approximate number of points fitting on A4 in landscape (height) - 80 for header and footer var ratio:Number = map.width/map.height; try { //create the PDF document myPDF = new PDF(Orientation.LANDSCAPE,Unit.MM, Size.LETTER); myPDF.setDisplayMode(Display.FULL_PAGE, Layout.SINGLE_PAGE); //if user wants a map in the PDF, //add the map to the PDF //if (chkMap.selected) { map.scaleBarVisible = true; map.zoomSliderVisible = false; map.panArrowsVisible = false; setPDFPageElements(myPDF, 220, 150, " Spatial Query Output " , "", "Copyright: State Planning Commision"); myPDF.addImage(map,null,20,20,240,150,0,1,false,ImageFormat.JPG,100,Blend.NORMAL,null); var grid:org.alivepdf.data.Grid; var dataArray:Array = ArrayCollection(dg.dataProvider).toArray(); grid = new org.alivepdf.data.Grid(dataArray, 0, 0, new RGBColor(0x999999), new RGBColor(0xFFFFFF),false, new RGBColor(0x000000), 1,Joint.MITER, null); grid.columns = createGridColumns(); var newPage:Page = new Page ( Orientation.LANDSCAPE, Unit.MM, Size.LETTER ); myPDF.addPage(newPage); myPDF.getCurrentPage().setUnit(Unit.MM); myPDF.textStyle(new RGBColor(0x000000), 1); myPDF.addGrid(grid, 3.5, 3.5, true); var file : FileReference = new FileReference() file.save(myPDF.save(Method.LOCAL),"exportresult.pdf"); } catch (error:Error) { Alert.show(error.message.toString()); } } //Next function is to be used with the addGrid method //Columns here is the array that contains my DataGrid columns private function createGridColumns():Array { var gridColumns:Array = new Array(); for each (var gridColumn:DataGridColumn in dg.columns) { var grColumn:org.alivepdf.data.GridColumn; grColumn = new GridColumn(gridColumn.headerText, gridColumn.dataField, 30, org.alivepdf.layout.Align.CENTER, org.alivepdf.layout.Align.LEFT); gridColumns.push(grColumn); } return gridColumns; } protected function button1_clickHandler(event:MouseEvent):void { doPrintPDF(); } //export shp private var result:FeatureSet = new FeatureSet(); import widgets.Export2Shp.mio.as3shplib.ShpWriter; private var shpWriter:ShpWriter = null; protected function button2_clickHandler(event:MouseEvent):void { shpWriter = new ShpWriter("shpexport", result.geometryType, result.spatialReference.wkid, result.fields); shpWriter.write(result.features); if (shpWriter != null) { var fr:FileReference = new FileReference(); fr.save(shpWriter.getData(), "shpexport.zip"); } else { Alert.show("Export failed"); } } //export png import com.esri.ags.Graphic; import com.esri.ags.geometry.Extent; import com.esri.ags.geometry.Geometry; import com.esri.ags.symbols.SimpleFillSymbol; import com.esri.ags.symbols.SimpleLineSymbol; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.core.UIComponent; import mx.graphics.codec.PNGEncoder; private const FILE_NAME:String = "screen.png"; private var mapExtent:Extent; private var bitmapData:BitmapData; private var logoBitmapData:BitmapData; /** * Save as png clicked */ protected function onSaveAsPng(event:MouseEvent):void { trace("Save button clicked"); saveMapImage(); } /** * @private */ private function saveMapImage():void { trace("Image export started"); var fileReference:FileReference = new FileReference(); hideComponents(); // add listeners to show zoom slider after execution fileReference.addEventListener(Event.COMPLETE, fileSaveComplete); fileReference.addEventListener(Event.CANCEL, fileSaveCancel); try { var mapComponent:UIComponent = map as UIComponent; var exportData:BitmapData = getBitmapData(mapComponent); if (exportData) { // encode to PNG format var pngEncoder:PNGEncoder = new PNGEncoder(); var byteArray:ByteArray = pngEncoder.encode(exportData); // open dialog box fileReference.save(byteArray, FILE_NAME); exportData = null; bitmapData = null; } } catch (ioError:IllegalOperationError) { trace(ioError.getStackTrace()); } catch (error:Error) { trace(error.getStackTrace()); } } /** * get bitmap data from IBitmapDrawable component */ private function getBitmapData(uiComponent:UIComponent):BitmapData { try { // map image size var mapWidth:Number = uiComponent.width; var mapHeigth:Number = uiComponent.height; // get flash map bitmap data bitmapData = new BitmapData(mapWidth, mapHeigth); var matrix:Matrix = new Matrix(); bitmapData.draw(uiComponent, matrix); } catch (error:Error) { trace(error.getStackTrace()); } return bitmapData; } /** * Hide crosshair, logo, scalebar ... */ private function hideComponents():void { // TODO: complete code // force UIComponent update/redraw map.validateNow(); } /** * Restore hidden map components: crosshair, logo, scalebar ... * Restore map extent. */ private function showComponents():void { // TODO: complete code // restore map extent map.extent = mapExtent; mapExtent = null; } /** * File upload/download canceled by user */ protected function fileSaveCancel(event:Event):void { showComponents(); } /** * File upload/download completed */ protected function fileSaveComplete(event:Event):void { showComponents(); } //Export to KML Reusable components import com.esri.ags.utils.WebMercatorUtil; private function saveKML():void { //create string to hold KML var KML:String = new String; KML = ""; KML = '<?xml version="1.0" encoding="UTF-8"?>\n<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">\n<Document>\n<Folder>\n'; for (var i:int = 0; i < queryGraphic.numGraphics; i++) { var gra:Graphic = queryGraphic.getChildAt(i) as Graphic; var symTypeName:String = ""; var symType:String = ""; var symLType:String = ""; var symFontE:String = ""; var symFontP:String = "middle"; var symSize:Number = 1; var symColor:Number = 0x000000; var symColor2:Number = 0x000000; var symColor3:Number = 0x000000; var symWidth:Number = 1; var symText:String = ""; var symAlpha1:Number = 1; var symAlpha2:Number = 1; var geomType:String = ""; var geomSR:Number; var gname:String = ""; var symAngle:Number = 0; var symcolour:String = ""; var polysymcolour:String = ""; var symAlpha:String = "FF"; var symAlphaOutline:String = "FF"; switch(gra.geometry.type) { case Geometry.MAPPOINT: { var pnt:MapPoint = gra.geometry as MapPoint; var latlong:MapPoint = WebMercatorUtil.webMercatorToGeographic(pnt) as MapPoint; KML = KML + "<Placemark>\n<Style>\n<IconStyle>\n<scale>1.000000</scale>\n<Icon>\n<href>" + sms + "</href>\n</Icon>\n</IconStyle>\n</Style>\n<name> Asset/Worksite</name>\n<description></description>\n<Point>\n<coordinates>\n" + latlong.x.toString() + "," + latlong.y.toString() + "\n</coordinates>\n</Point>\n</Placemark>\n"; break; } case Geometry.POLYLINE: { var polyline:Polyline = gra.geometry as Polyline; var lineSym:SimpleLineSymbol = gra.symbol as SimpleLineSymbol; symcolour = lineSym.color.toString(16); while (symcolour.length < 6) { symcolour = 0 + symcolour; } symWidth = lineSym.width; symAlpha = (lineSym.alpha * 255).toString(16); for (var i1:int = 0; i1 < polyline.paths.length; i1++) { KML = KML + "<Placemark>\n<name> Asset/Worksite</name>\n<description></description>\n<Style>\n<LineStyle>\n<color>" + symAlpha + symcolour.substr(4,2) + symcolour.substr(2,2) + symcolour.substr(0,2) + "</color>\n<width>" + symWidth + "</width>\n</LineStyle>\n</Style>\n<LineString>\n<coordinates>\n"; for (var j:int = 0; j < polyline.paths[i1].length; j++) { var mp:MapPoint = polyline.getPoint(i1,j) as MapPoint; var latlong:MapPoint = WebMercatorUtil.webMercatorToGeographic(mp) as MapPoint; KML = KML + latlong.x.toString() + "," + latlong.y.toString() + ",0 "; } KML = KML + "\n</coordinates>\n</LineString>\n</Placemark>\n"; } break; } case Geometry.POLYGON: { var poly:Polygon= gra.geometry as Polygon; var polySym:SimpleFillSymbol = gra.symbol as SimpleFillSymbol; polysymcolour = polySym.color.toString(16); while (polysymcolour.length < 6) { polysymcolour = 0 + polysymcolour; } symcolour = polySym.outline.color.toString(16); while (symcolour.length < 6) { symcolour = 0 + symcolour; } symWidth = polySym.outline.width; if(polySym.style != "solid") { symAlpha = (polySym.alpha * 128).toString(16); } else { symAlpha = (polySym.alpha * 255).toString(16); } symAlphaOutline = (polySym.outline.alpha * 255).toString(16); for (var i2:int = 0; i2 < poly.rings.length; i2++) { KML = KML + "<Placemark>\n<name> Asset/Worksite/Admin Boundary </name>\n<description></description>\n<Style>\n<PolyStyle>\n<color>" + symAlpha + polysymcolour.substr(4,2) + polysymcolour.substr(2,2) + polysymcolour.substr(0,2) + "</color>\n</PolyStyle>\n<LineStyle>\n<color>" + symAlphaOutline + symcolour.substr(4,2) + symcolour.substr(2,2) + symcolour.substr(0,2) + "</color>\n<width>" + symWidth + "</width>\n</LineStyle>\n</Style>\n<Polygon>\n<outerBoundaryIs>\n<LinearRing>\n<coordinates>\n"; for (var j1:int = 0; j1 < poly.rings[i2].length; j1++) { var mp2:MapPoint = poly.getPoint(i2,j1) as MapPoint; var latlong:MapPoint = WebMercatorUtil.webMercatorToGeographic(mp2) as MapPoint; KML = KML + latlong.x.toString() + "," + latlong.y.toString() + " "; } KML = KML + "\n</coordinates>\n</LinearRing>\n</outerBoundaryIs>\n</Polygon>\n</Placemark>\n"; } break; } } } KML = KML + "</Folder>\n</Document>\n</kml>"; var fr:FileReference = new FileReference(); if(!fr) fr = new FileReference(); fr.save(KML,"SavedGraphics.kml"); } protected function basewidget1_initializeHandler(event:FlexEvent):void { wSpatialQuery.addTitlebarButton(ICON_URL + "i_search.png", "Attribute Query Window", showStateTextSearch); wSpatialQuery.addTitlebarButton(ICON_URL + "i_table.png", "View Attribute Data", showStateResults); dg.visible = false; } private function showStateTextSearch():void { setCurrentState("queryInput", true); cursorManager.removeBusyCursor(); wSpatialQuery.selectedTitlebarButtonIndex = 0; } private function showStateResults():void { setCurrentState("resultsList", true); cursorManager.removeBusyCursor(); wSpatialQuery.selectedTitlebarButtonIndex = 1; } protected function resultsgrid_itemClickHandler(event:ListEvent):void { var selectedGraphic:Graphic; var attr:Object = event.itemRenderer.data; var i:int=0; for each (var gr:Graphic in queryGraphic.graphicProvider) { i++; if (gr.attributes == attr){ selectedGraphic=gr; queryGraphic.moveToTop(selectedGraphic); zoomToRow(selectedGraphic); } } } private function zoomToRow(graphic:Graphic):void { var gm:Geometry = graphic.geometry; switch (gm.type) { case Geometry.POLYGON: { var offset:int=1000; var graphicsExtent:Extent; if (graphic) { graphicsExtent = graphic.geometry.extent; graphicsExtent.xmax=graphicsExtent.xmax+offset; graphicsExtent.xmin=graphicsExtent.xmin-offset; graphicsExtent.ymax=graphicsExtent.ymax+offset; graphicsExtent.ymin=graphicsExtent.ymin-offset; map.extent = graphicsExtent; } break; } case Geometry.MAPPOINT: { map.centerAt(graphic.geometry as MapPoint); map.scale = 18056; break; } } } ]]> </fx:Script> <fx:Declarations> <s:ArrayCollection id="arrLayer"> <fx:Object id="obj1" label="WITHIN" /> <fx:Object id="obj2" label="NOT WITHIN" /> </s:ArrayCollection> <esri:SimpleFillSymbol id="sfs" style="solid" color="0xFF0000" alpha="0.4"> <esri:SimpleLineSymbol color="0xFF0000" width="2" alpha="1" style="solid" /> </esri:SimpleFillSymbol> <esri:SimpleMarkerSymbol id="sms" style="circle" color="0x000000" size="20"/> <esri:SimpleLineSymbol id="sls" style="solid" color="0xF5D0A9" width="10"/> <s:GlowFilter id="glowFilter" alpha="1" color="0xE95A22" inner="true" strength="100"/> <!--<mx:DataGrid id="dg" width="650" visible="false" />--> <mx:TitleWindow id="ttlExl" title="Header For Excel" > <s:TextInput id="myTextArea" contentBackgroundColor="0xFFFFFF" styleName="search_text" width="200" height="80" color="0x000000" chromeColor="0x000000" editable="true" enter="myTextArea_enterHandler(event)"/> <s:Button id="btnOK" label="OK" click="btnOK_clickHandler(event)" /> </mx:TitleWindow> <esri:GeometryService id="myGeometryService" url="http://164.100.196.130/spcgis/rest/services/Utilities/Geometry/GeometryServer" showBusyCursor="true"/> </fx:Declarations> <viewer:WidgetTemplate id="wSpatialQuery" open="init()" width="455" height="410" closed="Reset()" minHeight="410" minWidth="455" maxHeight="410"> <!--<s:Scroller id="scr" width="100%" height="100%">--> <!-- <viewer:layout> <s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/> </viewer:layout>--> <s:Group id="queryInput" visible="false" visible.queryInput="true"> <s:VGroup> <s:HGroup width="70"> <s:Spacer width="10"/> <s:Label id="lblAO" text="Area of Interest" styleName="labelText1"/> </s:HGroup> <s:BorderContainer borderStyle="solid" backgroundColor="0x87CEFA" width="{wSpatialQuery.width-42}" height="175" cornerRadius="5"> <s:VGroup> <s:Spacer height="3"/> <s:HGroup id="AdminGroup" gap="43" > <s:HGroup width="70"> <s:Spacer width="10"/> <s:Label id="lblAdminType" text="{resourceManager.getString('ViewerStrings', 'SpatialAdminType')}" styleName="labelText"/> </s:HGroup> <s:DropDownList id="ddlAdminType" prompt="Select Admin Boundary" toolTip="{ddlAdminType.selectedItem}" width="{wSpatialQuery.width-195}" change="ddlAdminType_changeHandler(event)"/> </s:HGroup> <s:HGroup id="DistorLAorPAGroup" gap="32" enabled="false"> <s:HGroup width="82"> <s:Spacer width="10"/> <s:Label id="lblDistorLAorPA" text="{resourceManager.getString('ViewerStrings', 'SpatialDistrictPALA')}" styleName="labelText"/> </s:HGroup> <s:List id="ddlDistorLAorPA" enabled="false" allowMultipleSelection="true" height="80" toolTip="For multiple District selection, use 'Ctrl'." width="{wSpatialQuery.width-195}" change="ddlDistorLAorPA_changeHandler(event)" selectionColor="0x81F7F3" /> </s:HGroup> <s:HGroup id="BlockorTehsilGroup" gap="40" enabled="false"> <s:HGroup width="74"> <s:Spacer width="10"/> <s:Label id="lblBlockorTehsil" text="{resourceManager.getString('ViewerStrings', 'SpatialBlockTehsil')}" styleName="labelText"/> </s:HGroup> <s:DropDownList id="ddlBlockorTehsil" enabled="false" prompt="Select Block/Tehsil" toolTip="{ddlBlockorTehsil.selectedItem}" width="{wSpatialQuery.width-195}" change="ddlBlockorTehsil_changeHandler(event)"/> </s:HGroup> <s:HGroup id="PanchayatGroup" gap="47" enabled="false"> <s:HGroup width="68"> <s:Spacer width="10"/> <s:Label id="lblPanchayat" text="{resourceManager.getString('ViewerStrings', 'SpatialPanchayat')}" styleName="labelText"/> </s:HGroup> <s:DropDownList id="ddlPanchayat" enabled="false" prompt="Select Panchayat" toolTip="{ddlPanchayat.selectedItem}" width="{wSpatialQuery.width-195}" change="ddlPanchayat_changeHandler(event)"/> </s:HGroup> </s:VGroup> </s:BorderContainer> <s:HGroup width="70"> <s:Spacer width="10"/> <s:Label id="lblC" text="Criteria" styleName="labelText1"/> </s:HGroup> <s:BorderContainer borderStyle="solid" backgroundColor="0x87CEFA" width="{wSpatialQuery.width-42}" height="90" cornerRadius="5"> <s:VGroup gap="5"> <s:Spacer height="3"/> <s:HGroup id="FirstSector" gap="74" visible="true"> <s:HGroup width="42"> <s:Spacer width="5"/> <s:Label id="lblFirstSector" text="{resourceManager.getString('ViewerStrings', 'SpatialSector')}" styleName="labelText"/> </s:HGroup> <s:HGroup> <s:DropDownList id="ddlFirstSector" prompt="Select Sector" toolTip="{ddlFirstSector.selectedItem}" width="{wSpatialQuery.width-195}" change="ddlFirstSector_changeHandler(event)"/> </s:HGroup> </s:HGroup> <s:HGroup id="FirstQuery" gap="77" visible="true"> <s:HGroup width="39"> <s:Spacer width="5"/> <s:Label id="lblFirstQuery" text="{resourceManager.getString('ViewerStrings', 'SpatialQuery')}" styleName="labelText"/> </s:HGroup> <s:HGroup> <s:DropDownList id="ddlFirstQuery" prompt="Select Query" toolTip="{ddlFirstQuery.selectedItem}" width="{wSpatialQuery.width-195}" change="ddlFirstQuery_changeHandler(event)"/> </s:HGroup> </s:HGroup> <!--<s:HGroup gap="70" visible="true"> <s:HGroup width="60"> <s:Spacer width="5"/> <s:CheckBox id="chkUseCriteria" label="Select for using buffer in query analysis" styleName="labelText" selected="false"/> </s:HGroup> </s:HGroup> --> <s:HGroup id="FirstCriteria" gap="70" > <s:HGroup width="45"> <s:Spacer width="5"/> <s:Label id="lblFirstCriteria" text="{resourceManager.getString('ViewerStrings', 'SpatialCriteria')}" styleName="labelText"/> </s:HGroup> <s:HGroup> <s:DropDownList id="ddlFirstCriteria" prompt="Select" dataProvider="{arrLayer}" toolTip="{ddlFirstCriteria.selectedItem}" width="{wSpatialQuery.width-305}"/> <s:TextArea id="txtFirstCriteria" width="60" height="20" restrict="0-9"/> <s:ComboBox id="cmbBuffer" dataProvider="{Units}" width="65"/> </s:HGroup> </s:HGroup> </s:VGroup> </s:BorderContainer> <s:VGroup> <s:Spacer height="1"/> <s:HGroup horizontalAlign="center" verticalAlign="middle"> <s:Button id="btnSearch" label="{resourceManager.getString('ViewerStrings', 'SpatialSubmit')}" click="btnSearch_clickHandler(event)" /> <s:Button id="btnReset" label="{resourceManager.getString('ViewerStrings', 'SpatialClear')}" click="Reset()" /> </s:HGroup> </s:VGroup> </s:VGroup> </s:Group> <!--</s:Scroller>--> <s:Group id="resultsList" visible="false" visible.resultsList="true"> <s:VGroup> <s:Spacer height="2"/> <mx:DataGrid id="dg" visible="false" width="{wSpatialQuery.width-50}" itemClick="resultsgrid_itemClickHandler(event)" height="{wSpatialQuery.height-100}" alternatingItemColors="[0xFFFFCC,0xCCCCCC]" sortableColumns="true" styleName="search_text"/> <s:HGroup gap="5"> <mx:Image toolTip="Export to PDF" source="assets/images/pdf.jpg" click="button1_clickHandler(event)"/> <mx:Image toolTip="Export to Shapefile" source="assets/images/shp1.png" click="button2_clickHandler(event)"/> <mx:Image toolTip="Export to PNG" source="assets/images/png.png" click="onSaveAsPng(event)"/> <mx:Image toolTip="Export to KML" source="assets/images/kml.gif" click="saveKML()"/> <mx:Image toolTip="Export to Excel" source="assets/images/csv.gif" click="GridToExcel(dg)"/> <mx:Label id="Countfeature" text="Total no of records : 0" styleName="labelText1"/> </s:HGroup> </s:VGroup> </s:Group> </viewer:WidgetTemplate> </viewer:BaseWidget>
The thing is if I do union it will return geometries only , so again cannot use it.
I tried using Extent also but even that dint help.