|
POST
|
http:// PFA image. I want to get the area marked in red. It is common area between all the intersections.
... View more
06-21-2016
10:02 AM
|
0
|
0
|
3661
|
|
POST
|
Hi, I have a feature class. It has polygons, some are overlapping and some are not. I want to get the intersection of those overlapping polygon in arcmap. How can I do that? Any help will be greatly appreciated.
... View more
06-21-2016
09:48 AM
|
0
|
10
|
8845
|
|
POST
|
Hi All, I'd made one application using ArcGIS API for flex in English. I'm also making the application in Hindi. There is a button on my application for English and Hindi (Please check attached screenshot-right hand corner). So application changes the language accordingly. Everything is working file except the labels which I've given in config.xml file. I'm not able to change the labels which I've given in config file. Labels should change according to language selected. I'm using locale files for language directory. Any help will be much appreciated. Thanks in advance! Regards, Akshay
... View more
04-11-2016
11:34 PM
|
0
|
0
|
3233
|
|
POST
|
Hi, How to export map to PDF without using Print task of ArcGIS. I want to add Map, Map title, Legend (Legend of some analysis like thematic mapping). Thanks in advance. Regards, Akshay Loya
... View more
02-27-2016
02:46 AM
|
0
|
0
|
1937
|
|
POST
|
Am using “esri/dijit/Bookmarks” from “Store bookmarks client side” sample in esri javascript api site. When I delete any of the added bookmark the bookmark gets deleted. But when I refresh the page, the deleted bookmark is retained and by default the first added bookmark gets removed. I have attached images of output. I added 4 bookmarks. I removed bookmark number 3. After deleting, I immediately refresh page and number 1 bookmark gets removed instead of Number 3 bookmark which I removed. I went through the live sample and the same problem is repeated.
... View more
01-15-2016
03:55 AM
|
0
|
0
|
1748
|
|
POST
|
Hi Robert, Can you please summarise for last extent thing. I'm getting bit confused with so many things in that thread. Thanks
... View more
10-20-2015
08:35 PM
|
0
|
2
|
2158
|
|
POST
|
Hi, When I close my flex application or re-login it, map refreshes to initial extent. I want to open my application on same extent on which I've logged-out or close the application. Any idea on how I can go about it. Any help will be appreciated. Regards, Akshay
... View more
10-19-2015
03:52 AM
|
0
|
10
|
5275
|
|
POST
|
Hi, I want to create a custom print widget in flex where I can have option to select/not select Legend,Scale bar, Date and Time. Any Idea how to create my own template and customised print widget in flex. Any help will be appreciated. Thanks & Regards, Akshay
... View more
10-19-2015
01:59 AM
|
0
|
0
|
2974
|
|
POST
|
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.
... View more
07-15-2015
10:37 PM
|
0
|
0
|
700
|
|
POST
|
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 .attributes.District_DCP_Code)
{
var graphic:Graphic = districtFeatureSet.features ;
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>
... View more
07-15-2015
05:23 AM
|
0
|
1
|
700
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 02-01-2018 06:19 PM | |
| 1 | 08-03-2022 10:17 PM | |
| 1 | 01-11-2018 07:40 AM | |
| 1 | 01-11-2018 06:12 AM | |
| 1 | 08-28-2017 02:59 AM |
| Online Status |
Offline
|
| Date Last Visited |
06-26-2023
01:44 PM
|