I am trying to buffer the result of a query which is a polygon. I have tried several different approaches but my code always fails when calling the geometry service's buffer function. Once I buffer the selected polygon (the query result) I'm going to use the geometry of the buffer to do a spatial query. Can anyone see what is the issue with my code? Thanks, Don.function performParcelSearch(){
var parcelVal = $("#inputParcel").val();
var bufferDist = $("#inputBuffer").val();
var symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASHDOT, new dojo.Color([255, 0, 0]), 2), new dojo.Color([255, 255, 0, 0.25]));
var queryTask = new esri.tasks.QueryTask(searchLayer);
if (!parcelVal) {
alert("Please enter a parcel number.");
}
else {
var qryExp = "parcel_f = '" + parcelVal + "'";
//initialize query
var parcelQuery = new esri.tasks.Query();
parcelQuery.returnGeometry = true;
parcelQuery.outFields = ["*"];
parcelQuery.where = qryExp;
//execute query
queryTask.execute(parcelQuery, function showResults(featureSet){
//remove all graphics on the maps graphics layer
map.graphics.clear();
var features = featureSet.features;
//QueryTask returns a featureSet. Loop through features in the featureSet and add them to the map.
dojo.forEach(features, function(feature){
var graphic = feature;
graphic.setSymbol(symbol);
console.log("BB");
//Add graphic to the map graphics layer.
var featureextent = graphic.geometry.getExtent();
map.setExtent(featureextent, true);
map.graphics.add(graphic);
/*------------------------------------*/
// Performs Buffer Search
/*------------------------------------*/
if (bufferDist > 0) {
$("#exportDiv").show("slow");
$("#bufferResultsDiv").show("slow");
var params = new esri.tasks.BufferParameters();
params.distances = bufferDist;
params.bufferSpatialReference = map.spatialReference;
params.outSpatialReference = map.spatialReference;
params.unit = esri.tasks.GeometryService.UNIT_FOOT;
params.geometries = feature.geometry;
geometryService.buffer(params, showBuffer);
}
});
});
}
}