Solved! Go to Solution.
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:esri="http://www.esri.com/2008/ags" pageTitle="Attribute Inspector (edit)"> <fx:Script> <![CDATA[ import com.esri.ags.Graphic; import com.esri.ags.SpatialReference; import com.esri.ags.events.FeatureLayerEvent; import com.esri.ags.events.MapMouseEvent; 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.symbols.SimpleFillSymbol; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.rpc.events.FaultEvent; private var mapClickPoint:MapPoint; protected function map_mapClickHandler(event:MapMouseEvent):void { // convert click to an extents var vPt:MapPoint = event.mapPoint; mapClickPoint = event.mapPoint; var vX:Number = vPt.x; var vY:Number = vPt.y; var vExtent:Extent = new Extent(vX - 100, vY - 100,vX + 100, vY + 100) var thisSelectionQuery:Query = new Query(); thisSelectionQuery.geometry = vExtent; myFeatureLayer.selectFeatures(thisSelectionQuery, FeatureLayer.SELECTION_NEW); } protected function attrInsp_faultHandler(event:FaultEvent):void { Alert.show(event.fault.message, "Fault"); } protected function myFeatureLayer_selectionCompleteHandler(event:FeatureLayerEvent):void { // only show infoWindow if a feature was found if (event.featureLayer.numGraphics > 0){ myMap.infoWindow.label = "Sign " + event.featureLayer.selectedFeatures[0].attributes.OBJECTID; myMap.infoWindow.show(mapClickPoint); }else{ Alert.show("Sorry found nothing here..."); } } ]]> </fx:Script> <fx:Declarations> <esri:Query id="queryMapClick"/> </fx:Declarations> <fx:Style> @namespace s "library://ns.adobe.com/flex/spark"; @namespace esri "http://www.esri.com/2008/ags"; esri|InfoWindow { background-color: #BDB76B; /* dark khaki */ border-color: #000000; border-thickness: 3; lower-left-radius: 20; lower-right-radius: 20; upper-left-radius: 20; upper-right-radius: 0; padding-bottom: 7; padding-left: 7; padding-right: 7; padding-top: 4; } esri|InfoWindowLabel { color: #FFFFFF; font-size: 15; padding-left: 120; } s|BorderContainer { background-color: #F0E68C; /* light khaki */ corner-radius: 15; content-background-color: #BDB76B; padding-bottom: 5; } </fx:Style> <s:layout> <s:VerticalLayout/> </s:layout> <esri:Map id="myMap" load="attrInsp.featureLayers = [myFeatureLayer]" mapClick="map_mapClickHandler(event)" openHandCursorVisible="false"> <!-- Extent for Woukesha Signs --> <esri:extent> <esri:Extent xmin="2468000" ymin="371000" xmax="2475000" ymax="376000"> <esri:SpatialReference wkid="32054"/> </esri:Extent> </esri:extent> <esri:ArcGISDynamicMapServiceLayer url="https://maps.ags.ruekert-mielke.com/AGS/rest/services/WaukeshaCity/WaukeshaSignsSampleSigns/MapServer"/> <esri:ArcGISDynamicMapServiceLayer url="https://maps.ags.ruekert-mielke.com/AGS/rest/services/WaukeshaCity/WaukeshaSignsSampleApp2/MapServer"/> <esri:FeatureLayer id="myFeatureLayer" mode="selection" outFields="[HouseNumber,StreetName]" selectionColor="0x000000" selectionComplete="myFeatureLayer_selectionCompleteHandler(event)" url="https://maps.ags.ruekert-mielke.com/AGS/rest/services/WaukeshaCity/WaukeshaSignsSampleSigns/MapServer/0"/> <esri:GraphicsLayer id="myGraphicsLayer"> <esri:Graphic> <esri:geometry> <esri:MapPoint x="2471315" y="374682" spatialReference="{new SpatialReference(32054)}"/> </esri:geometry> </esri:Graphic> </esri:GraphicsLayer> <esri:infoWindowContent> <s:BorderContainer> <esri:AttributeInspector id="attrInsp"/> </s:BorderContainer> </esri:infoWindowContent> </esri:Map> <s:Label text="The feature layer has {myFeatureLayer.selectedFeatures.length} selected feature(s)."/> </s:Application>
Cannot access a property or method of a null object reference.
try
{
var myObject:Object = new Object(); // myObject is not null
myObject.myParameter = "Hello world!";
var message:String = myObject.myParameter;
trace(message);
}
catch (error:Error)
{
trace(error.message.toString());
}
try
{
var myObject:Object = new Object(); // myObject is null
var message:String = myObject.myParameter;
trace(message);
}
catch (error:Error)
{
trace(error.message.toString());
} <fx:Script>
<![CDATA[
import com.esri.ags.Graphic;
import com.esri.ags.SpatialReference;
import com.esri.ags.events.FeatureLayerEvent;
import com.esri.ags.events.MapMouseEvent;
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.layers.FeatureLayer;
import com.esri.ags.symbols.SimpleFillSymbol;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
protected function map_mapClickHandler(event:MapMouseEvent):void
{
// convert click to an extents
var vPt:MapPoint = event.mapPoint;
queryMapClick = event.mapPoint;
var vX:Number = vPt.x;
var vY:Number = vPt.y;
var vExtent:Extent = new Extent(vX - 100, vY - 100,vX + 100, vY + 100)
var thisSelectionQuery:Query = new Query();
thisSelectionQuery.geometry = vExtent;
var myFeatureLayer:FeatureLayer = new FeatureLayer;
}
protected function attrInsp_faultHandler(event:FaultEvent):void
{
Alert.show(event.fault.message, "Fault");
}
protected function myFeatureLayer_selectionCompleteHandler(event:FeatureLayerEvent):void
{
// only show infoWindow if a feature was found
if (event.featureLayer.numGraphics > 0)
{
myMap.infoWindow.label = "Sign " + event.featureLayer.selectedFeatures[0].attributes.OBJECTID;
//I am not sure what I should do with this
myMap.infoWindow.show(queryMapClick.geometry as MapPoint);
}
else
{
Alert.show("Sorry found nothing here...");
}
}
]]>
</fx:Script>
<fx:Declarations> <esri:Query id="queryMapClick"/> </fx:Declarations>
1067: Implicit coercion of a value of type com.esri.ags.geometry:MapPoint to an unrelated type com.esri.ags.tasks.supportClasses:Query
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:esri="http://www.esri.com/2008/ags"
pageTitle="Attribute Inspector (edit)">
<fx:Script>
<![CDATA[
import com.esri.ags.Graphic;
import com.esri.ags.SpatialReference;
import com.esri.ags.events.FeatureLayerEvent;
import com.esri.ags.events.MapMouseEvent;
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.symbols.SimpleFillSymbol;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
//public var queryMapClick1:MapPoint;
protected function map_mapClickHandler(event:MapMouseEvent):void
{
// convert click to an extents
var vPt:MapPoint = event.mapPoint;
queryMapClick = event.mapPoint;
var vX:Number = vPt.x;
var vY:Number = vPt.y;
var vExtent:Extent = new Extent(vX - 100, vY - 100,vX + 100, vY + 100)
var thisSelectionQuery:Query = new Query();
thisSelectionQuery.geometry = vExtent;
myFeatureLayer.selectFeatures(thisSelectionQuery, FeatureLayer.SELECTION_NEW);
}
protected function attrInsp_faultHandler(event:FaultEvent):void
{
Alert.show(event.fault.message, "Fault");
}
protected function myFeatureLayer_selectionCompleteHandler(event:FeatureLayerEvent):void
{
// only show infoWindow if a feature was found
if (event.featureLayer.numGraphics > 0)
{
myMap.infoWindow.label = "Sign " + event.featureLayer.selectedFeatures[0].attributes.OBJECTID;
//I am not sure what I should do with this
myMap.infoWindow.show(queryMapClick.geometry as MapPoint);
}
else
{
Alert.show("Sorry found nothing here...");
}
}
]]>
</fx:Script>
<fx:Declarations>
<esri:Query id="queryMapClick"/>
</fx:Declarations>
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace esri "http://www.esri.com/2008/ags";
esri|InfoWindow
{
background-color: #BDB76B; /* dark khaki */
border-color: #000000;
border-thickness: 3;
lower-left-radius: 20;
lower-right-radius: 20;
upper-left-radius: 20;
upper-right-radius: 0;
padding-bottom: 7;
padding-left: 7;
padding-right: 7;
padding-top: 4;
}
esri|InfoWindowLabel
{
color: #FFFFFF;
font-size: 15;
padding-left: 120;
}
s|BorderContainer
{
background-color: #F0E68C; /* light khaki */
corner-radius: 15;
content-background-color: #BDB76B;
padding-bottom: 5;
}
</fx:Style>
<s:layout>
<s:VerticalLayout/>
</s:layout>
<esri:Map id="myMap"
load="attrInsp.featureLayers = [myFeatureLayer]"
mapClick="map_mapClickHandler(event)"
openHandCursorVisible="false">
<!-- Extent for Woukesha Signs -->
<esri:extent>
<esri:Extent xmin="2468000" ymin="371000" xmax="2475000" ymax="376000">
<esri:SpatialReference wkid="32054"/>
</esri:Extent>
</esri:extent>
<esri:ArcGISDynamicMapServiceLayer
url="https://maps.ags.ruekert-mielke.com/AGS/rest/services/WaukeshaCity/WaukeshaSignsSampleSigns/MapServer"/>
<esri:ArcGISDynamicMapServiceLayer
url="https://maps.ags.ruekert-mielke.com/AGS/rest/services/WaukeshaCity/WaukeshaSignsSampleApp2/MapServer"/>
<esri:FeatureLayer id="myFeatureLayer"
mode="selection"
outFields="[HouseNumber,StreetName]"
selectionColor="0x000000"
selectionComplete="myFeatureLayer_selectionCompleteHandler(event)"
url="https://maps.ags.ruekert-mielke.com/AGS/rest/services/WaukeshaCity/WaukeshaSignsSampleSigns/MapServer/0"/>
<esri:GraphicsLayer id="myGraphicsLayer">
<esri:Graphic>
<esri:geometry>
<esri:MapPoint x="2471315" y="374682" spatialReference="{new SpatialReference(32054)}"/>
</esri:geometry>
</esri:Graphic>
</esri:GraphicsLayer>
<esri:infoWindowContent>
<s:BorderContainer>
<esri:AttributeInspector id="attrInsp"/>
</s:BorderContainer>
</esri:infoWindowContent>
</esri:Map>
<s:Label text="The feature layer has {myFeatureLayer.selectedFeatures.length} selected feature(s)."/>
</s:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:esri="http://www.esri.com/2008/ags" pageTitle="Attribute Inspector (edit)"> <fx:Script> <![CDATA[ import com.esri.ags.Graphic; import com.esri.ags.SpatialReference; import com.esri.ags.events.FeatureLayerEvent; import com.esri.ags.events.MapMouseEvent; 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.symbols.SimpleFillSymbol; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.rpc.events.FaultEvent; private var mapClickPoint:MapPoint; protected function map_mapClickHandler(event:MapMouseEvent):void { // convert click to an extents var vPt:MapPoint = event.mapPoint; mapClickPoint = event.mapPoint; var vX:Number = vPt.x; var vY:Number = vPt.y; var vExtent:Extent = new Extent(vX - 100, vY - 100,vX + 100, vY + 100) var thisSelectionQuery:Query = new Query(); thisSelectionQuery.geometry = vExtent; myFeatureLayer.selectFeatures(thisSelectionQuery, FeatureLayer.SELECTION_NEW); } protected function attrInsp_faultHandler(event:FaultEvent):void { Alert.show(event.fault.message, "Fault"); } protected function myFeatureLayer_selectionCompleteHandler(event:FeatureLayerEvent):void { // only show infoWindow if a feature was found if (event.featureLayer.numGraphics > 0){ myMap.infoWindow.label = "Sign " + event.featureLayer.selectedFeatures[0].attributes.OBJECTID; myMap.infoWindow.show(mapClickPoint); }else{ Alert.show("Sorry found nothing here..."); } } ]]> </fx:Script> <fx:Declarations> <esri:Query id="queryMapClick"/> </fx:Declarations> <fx:Style> @namespace s "library://ns.adobe.com/flex/spark"; @namespace esri "http://www.esri.com/2008/ags"; esri|InfoWindow { background-color: #BDB76B; /* dark khaki */ border-color: #000000; border-thickness: 3; lower-left-radius: 20; lower-right-radius: 20; upper-left-radius: 20; upper-right-radius: 0; padding-bottom: 7; padding-left: 7; padding-right: 7; padding-top: 4; } esri|InfoWindowLabel { color: #FFFFFF; font-size: 15; padding-left: 120; } s|BorderContainer { background-color: #F0E68C; /* light khaki */ corner-radius: 15; content-background-color: #BDB76B; padding-bottom: 5; } </fx:Style> <s:layout> <s:VerticalLayout/> </s:layout> <esri:Map id="myMap" load="attrInsp.featureLayers = [myFeatureLayer]" mapClick="map_mapClickHandler(event)" openHandCursorVisible="false"> <!-- Extent for Woukesha Signs --> <esri:extent> <esri:Extent xmin="2468000" ymin="371000" xmax="2475000" ymax="376000"> <esri:SpatialReference wkid="32054"/> </esri:Extent> </esri:extent> <esri:ArcGISDynamicMapServiceLayer url="https://maps.ags.ruekert-mielke.com/AGS/rest/services/WaukeshaCity/WaukeshaSignsSampleSigns/MapServer"/> <esri:ArcGISDynamicMapServiceLayer url="https://maps.ags.ruekert-mielke.com/AGS/rest/services/WaukeshaCity/WaukeshaSignsSampleApp2/MapServer"/> <esri:FeatureLayer id="myFeatureLayer" mode="selection" outFields="[HouseNumber,StreetName]" selectionColor="0x000000" selectionComplete="myFeatureLayer_selectionCompleteHandler(event)" url="https://maps.ags.ruekert-mielke.com/AGS/rest/services/WaukeshaCity/WaukeshaSignsSampleSigns/MapServer/0"/> <esri:GraphicsLayer id="myGraphicsLayer"> <esri:Graphic> <esri:geometry> <esri:MapPoint x="2471315" y="374682" spatialReference="{new SpatialReference(32054)}"/> </esri:geometry> </esri:Graphic> </esri:GraphicsLayer> <esri:infoWindowContent> <s:BorderContainer> <esri:AttributeInspector id="attrInsp"/> </s:BorderContainer> </esri:infoWindowContent> </esri:Map> <s:Label text="The feature layer has {myFeatureLayer.selectedFeatures.length} selected feature(s)."/> </s:Application>