Hi,
I have difficulties with esri.tasks.BufferParameters needed for a esri.tasks.GeometryService. I want to create buffer around selected points but I can't construct the BufferParameters.geometries correctly.
//select feautures point by drawing on the map
function initSelectToolbar(map) {
selectionToolbar = new esri.toolbars.Draw(map);
var selectQuery = new esri.tasks.Query();
dojo.connect(selectionToolbar, "onDrawEnd", function(geometry) {
selectionToolbar.deactivate();
selectQuery.geometry = geometry;
selectedFeatures = featureLayer.selectFeatures(selectQuery, esri.layers.FeatureLayer.SELECTION_NEW);
});
}
//create buffer arround selected features
function createBuffer(selectedFeatures) {
console.log(selectedFeatures)
var gpBuffer = new esri.tasks.GeometryService("http://localhost:6080/arcgis/rest/services/Utilities/Geometry/GeometryServer");
var params = new esri.tasks.BufferParameters();
params.geometries = selectedFeatures._selectedFeatures.geometry; //not working
params.distance = 10;
params.unit = esri.tasks.GeometryService.UNIT_KILOMETER;
params.bufferSpatialReference = new esri.SpatialReference({wkid: 4326});
params. outSpatialReference = map.spatialReference;
console.log(params);
gpBuffer.buffer(params, showBuffer, console.log(error));
}
Thank you for your help !
Do I need to loop over each features in selectedFeature to create buffers? I tryed like this but I still have a 400 error in geometryService with message 'geometries' must be specified function createBuffer(selectedFeatures) {
console.log(selectedFeatures)
var gpBuffer = new esri.tasks.GeometryService("http://localhost:6080/arcgis/rest/services/Utilities/Geometry/GeometryServer");
var params = new esri.tasks.BufferParameters();
require(["dojo/_base/array"], function(array){
array.forEach(selectedFeatures.graphics, function(feature) {
params.geometries = feature.geometry;
params.distance = 10;
params.unit = esri.tasks.GeometryService.UNIT_KILOMETER;
params.bufferSpatialReference = new esri.SpatialReference({wkid: 3857});
params. outSpatialReference = map.spatialReference;
console.log(params);
gpBuffer.buffer(params, showBuffer, alert('yo'));
});
});
}