HOW TO REMOVE QUERIED BUFFER GRAPHICS

3968
3
Jump to solution
05-17-2016 05:56 AM
bharathreddy
Occasional Contributor

I am unable to remove buffer results graphics on clcik button please attach necessary code i am using version 3.5

urgent

Thanks and regards

bharath

0 Kudos
1 Solution

Accepted Solutions
thejuskambi
Occasional Contributor III

I see that you are using "map.graphics.add" to add the buffer polygons to the map. To remove the buffer, you can use map.graphics.clear to remove all the graphics or use map.graphics.remove(graphic) to remove the specific graphic

View solution in original post

3 Replies
TimWitt2
MVP Alum

It would be helpful to see the code you are working with. It is hard to tell you the right code if we don't know how you have created the buffer graphic.

0 Kudos
bharathreddy
Occasional Contributor

Hi tim here is the code im working with

  dojo.require("dijit.layout.BorderContainer");

        dojo.require("dijit.layout.ContentPane");

        dojo.require("esri.map");

        dojo.require("esri.tasks.geometry");

        dojo.require("esri.toolbars.draw");

        dojo.require("esri.tasks.query");

        dojo.require("esri.layers.FeatureLayer");

        dojo.require("dojox.grid.DataGrid");

        dojo.require("dojo.data.ItemFileReadStore");

        dojo.require("dojo/_base/array");

        dojo.require("dojo/store/Memory");

        dojo.require("esri.tasks.find");

        var map, gsvc, tb, arrayUtils;

        var grid, store, data, OnDemandGrid, Memory;

        var findTask, findParams;

        function initialize() {

            map = new esri.Map("map", {

                center: [-111.5, 39.541],

                zoom: 7

            });

            landBaseLayer = new esri.layers.ArcGISDynamicMapServiceLayer("http://192.168.2.35/ArcGIS/rest/services/point/MapServer", { opacity: 5.55 });

            map.addLayer(landBaseLayer);

            dojo.connect(map, "onLoad", initToolbar);

            gsvc = new esri.tasks.GeometryService("http://192.168.2.35/ArcGIS/rest/services/Geometry/GeometryServer");

            esri.config.defaults.io.proxyUrl = "/proxy";

            esri.config.defaults.io.alwaysUseProxy = false;

            //      }

            function initToolbar(map) {

                tb = new esri.toolbars.Draw(map);

                dojo.connect(tb, "onDrawEnd", doBuffer);

            }

            function doBuffer(geometry) {

                debugger;

                if (geometry.type == "point") {

                    var symbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255, 0, 0]), 1), new dojo.Color([0, 255, 0, 0.25]));

                }

                else if (geometry.type == "polyline") {

                    var symbol = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASH, new dojo.Color([255, 0, 0]), 1);

                }

                else if (geometry.type == "polygon") {

                    var symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_NONE, 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 featureLayer = new esri.layers.FeatureLayer("http://192.168.2.35/ArcGIS/rest/services/point/MapServer/" + ddlViewBy.value, {

                    mode: esri.layers.FeatureLayer.MODE_SELECTION,

                    outFields: ["*"]

                });

                map.addLayer(featureLayer);

                var symbol = new esri.symbol.SimpleMarkerSymbol().setColor(new dojo.Color([255, 0, 0]));

                featureLayer.setSelectionSymbol(symbol);

                var graphic = new esri.Graphic(geometry, symbol);

                //                map.graphics.add(graphic);

                //setup the buffer parameters

                var params = new esri.tasks.BufferParameters();

                params.distances = [dojo.byId("distance").value];

                params.bufferSpatialReference = new esri.SpatialReference({ wkid: dojo.byId("bufferSpatialReference").value });

                params.outSpatialReference = map.spatialReference;

                params.unit = eval("esri.tasks.GeometryService." + dojo.byId("unit").value);

                if (geometry.type === "polygon") {

                    debugger;

                    //if geometry is a polygon then simplify polygon.  This will make the user drawn polygon topologically correct.

                    gsvc.simplify([geometry], function (geometries) {

                        params.geometries = geometries;

                        gsvc.buffer(params, showBuffer);

                    });

                } else {

                    params.geometries = [geometry];

                    gsvc.buffer(params);

                }

                //code used to set graphics for polygon buffer//////////////////////////////////////////////

                function showBuffer(bufferedGeometries) {

                    debugger;

                    var symbol = new esri.symbol.SimpleFillSymbol(

        esri.symbol.SimpleFillSymbol.STYLE_SOLID,

        new esri.symbol.SimpleLineSymbol(

          esri.symbol.SimpleLineSymbol.STYLE_SOLID,

          new dojo.Color([255, 0, 0]), 2

        ),

        new dojo.Color([255, 0, 0])

      );

                    dojo.forEach(bufferedGeometries, function (geometry) {

                        var graphic = new esri.Graphic(geometry, symbol);

                        // map.graphics.add(graphic);

                    });

                    tb.deactivate();

                    map.showZoomSlider();

                }

                ///////////////////////////////////////////////////////////////////////////////////

                var highlightSymbol = new esri.symbol.SimpleMarkerSymbol().setColor(new dojo.Color([255, 0, 0]));

                gsvc.on("buffer-complete", function (extent) {

                    //                  console.log(extent);

                    var results = [];

                    dojo.forEach(map.graphics.graphics, function (graphic) {

                    });

                });

                gsvc.on("buffer-complete", function (result) {

                    //draw the buffer geometry on the map as a map graphic

                    var symbol = new esri.symbol.SimpleFillSymbol(

                                    esri.symbol.SimpleFillSymbol.STYLE_SOLID,

                                    new esri.symbol.SimpleLineSymbol(

                                      esri.symbol.SimpleLineSymbol.STYLE_SOLID,

                                      new dojo.Color([255, 0, 0, 0.65]), 2

                                    ),

                                    new dojo.Color([255, 0, 0, 0.35])

                                  );

                    var bufferGeometry = result.geometries[0];

                    //                  console.log(bufferGeometry);

                    var graphic = new esri.Graphic(bufferGeometry, symbol);

                    map.graphics.add(graphic);

                    //Select features within the buffered polygon. To do so we'll create a query to use the buffer graphic

                    //as the selection geometry.

                    var query = new esri.tasks.Query();

                    //                  console.log(query);

                    query.geometry = bufferGeometry;

                    //                  console.log(query);

                    featureLayer.selectFeatures(query, esri.layers.FeatureLayer.SELECTION_NEW, function (results, i) {

                        $("#getData").empty();

                        var c = featureLayer.getSelectedFeatures();

                        var raja = 0;

                        if (c.length > 0) {

                            for (n = 0; n < c.length; n++) {

                                var o = c.attributes,

                                o1 = JSON.stringify(o);

                                o2 = o1.replace("{", ""),

                                o3 = o2.replace("}", ""),

                                o4 = o3.split(",");

                                var c1 = "<table border='0' cellspacing='0' cellpadding='0'><tr>";

                                if (o4.length > 0) {

                                    if (raja == 0) {

                                        for (s = 0; s < o4.length; s++) {

                                            o5 = o4.split(":");

                                            o6 = o5[0].replace('"', '');

                                            o6 = o6.replace('"', '');

                                            o7 = o5[1];

                                            c1 += "<td style='border: solid 1px; background-color: #ccc;height:50px;'>" + o6 + "</td>";

                                        }

                                        raja = 1;

                                    }

                                    c1 += "</tr><tr>";

                                    for (s = 0; s < o4.length; s++) {

                                        o5 = o4.split(":");

                                        o7 = o5[1];

                                        c1 += "<td style='border: solid 1px;min-width: 250px;'><p>" + o7 + "</p></td>";

                                       }

                                    c1 += "</tr></table>"

                                    $("#getData").append(c1);

                                }

                                                               

                            }

                           

                        }

                       

                        var totalPopulation = sumPopulation(results);

                        var r = "";

                        r = "<b>The total Census Block population within the buffer is <i>" + totalPopulation + "</i>.</b>";

                        dojo.byId('messages').innerHTML = r;

                      });

                });

            }

        }

        function errorMessage(error) {

            debugger;

            console.log(error);

        }

        function sumPopulation(features) {

            var popTotal = 0;

            for (var x = 0; x < features.length; x++) {

                popTotal = popTotal + features.attributes["OBJECTID"];

            }

            return popTotal;

        }

        dojo.ready(initialize);

0 Kudos
thejuskambi
Occasional Contributor III

I see that you are using "map.graphics.add" to add the buffer polygons to the map. To remove the buffer, you can use map.graphics.clear to remove all the graphics or use map.graphics.remove(graphic) to remove the specific graphic