Use of selectedFeatures in buffer GeometryService

853
1
02-07-2014 04:42 AM
MaxDemars
New Contributor III
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 !
0 Kudos
1 Reply
MaxDemars
New Contributor III
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'));
          });
        });
    }
0 Kudos