private function itemClickHandler(event:ItemClickEvent):void
{
switch (event.index)
{
case 0:
{
setMapAction(Draw.MAPPOINT, "Sök med Punkt", drawEnd);
break;
}
case 1:
{
setMapAction(Draw.POLYLINE, "Sök med Linje", drawEnd);
break;
}
case 2:
{
setMapAction(Draw.POLYGON, "Sök med Yta", drawEnd);
break;
}
case 3:
{
setMapAction(Draw.EXTENT, "Sök med rektangel", drawEnd);
break;
}
}
}
private function drawEnd(event:DrawEvent):void
{
clear();
if (buffert.value > 0) {
var bufferParameters:BufferParameters = new BufferParameters();
bufferParameters.features = [event.graphic];
bufferParameters.distances = [buffert.value];
bufferParameters.unit = BufferParameters.UNIT_METER;
bufferParameters.bufferSpatialReference = new SpatialReference(3021);
myGeometryService.addEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler);
myGeometryService.addEventListener(FaultEvent.FAULT, bufferFaultHandler);
myGeometryService.buffer(bufferParameters);
function bufferCompleteHandler(event:GeometryServiceEvent):void
{
myGeometryService.removeEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler);
for each (var graphic:Graphic in event.graphics)
{
graphic.symbol = symbBuff;
graphicsLayer.add(graphic);
query.geometry = graphic.geometry;
queryFastighet.execute(query);
}
}
function bufferFaultHandler(event:FaultEvent):void
{
Alert.show(event.fault.message.toString());
}
}
else {
query.geometry = event.graphic.geometry;
queryFastighet.execute(query);
}
}if (event.graphic.geometry is com.esri.ags.geometry.Extent){
var p1:MapPoint = new MapPoint(event.graphic.geometry.extent.xmin, event.graphic.geometry.extent.ymin, spatRef);
var p2:MapPoint = new MapPoint(event.graphic.geometry.extent.xmin, event.graphic.geometry.extent.ymax, spatRef);
var p3:MapPoint = new MapPoint(event.graphic.geometry.extent.xmax, event.graphic.geometry.extent.ymax, spatRef);
var p4:MapPoint = new MapPoint(event.graphic.geometry.extent.xmax, event.graphic.geometry.extent.ymin, spatRef);
//If user doesn't draw an extent but just click using the draw extent tool, we have to use a MapPoint instead of a Polygon
if ((event.graphic.geometry.extent.xmin == event.graphic.geometry.extent.xmax) && (event.graphic.geometry.extent.ymin == event.graphic.geometry.extent.ymax)){
myGraphic = new Graphic(p1,symbBuff,spatRef);
} else {
var myPoints:Array = new Array(p1, p2, p3, p4, p1);
var myRing:Array = new Array(myPoints);
var myPolygon:Polygon = new Polygon(myRing,spatRef);
myGraphic = new Graphic(myPolygon,symbBuff,spatRef);
}
bufferParameters.features = [myGraphic];
} else {
bufferParameters.features = [event.graphic];
}