Solved! Go to Solution.
function showResults(results) { var len = results.features.length; var featureSet = new FeatureSet(); featureSet = results; graphicsLayer = new esri.layers.GraphicsLayer(); dojo.forEach(featureSet.features, function (feature,index) { var spID = featureSet.features[index].attributes.SP_ID; var address = featureSet.features[index].attributes.ADDRESS; var callbackstatus = featureSet.features[index].attributes.CALLBACKSTATUS; var meterNumber = featureSet.features[index].attributes.METERNUMBER; feature.geometry = new esri.geometry.Point(featureSet.features[index].attributes.GIS_X, featureSet.features[index].attributes.GIS_Y, new esri.SpatialReference({ wkid: 4326 })); feature.symbol = defaultSymbol; graphicsLayer.add(feature); }); mapMain.addLayer(graphicsLayer); } function findPointsInExtent(extent) { var graphics = graphicsLayer; dojo.forEach(graphics.graphics, function (graphic) { for (var i = 0, il = graphics.graphics.length; i < il; i++) { if (extent.contains(graphic.geometry)) { graphic.setSymbol(highlightSymbol); } else if (graphic.symbol == highlightSymbol) { graphic.setSymbol(defaultSymbol); } } }) }
/// <reference path="index.html" /> var mapMain, selectionLayer, graphicsLayer, selectionToolbar, graphic, defaultSymbol, highlightSymbol, resultTemplate; require([ "esri/map", "esri/geometry/Extent", "esri/layers/ArcGISTiledMapServiceLayer", "esri/layers/FeatureLayer", "esri/tasks/GeometryService", "esri/tasks/query", "esri/tasks/QueryTask", "esri/tasks/FeatureSet", "esri/graphic", "esri/toolbars/draw", "esri/config", "dojo/ready", "dojo/parser", "dojo/on", "dojo/dom", "dojo/_base/array", "dijit/layout/BorderContainer", "dijit/layout/ContentPane"], function ( Map, Extent, ArcGISTiledMapServiceLayer, FeatureLayer, GeometryService, Query, QueryTask, FeatureSet, graphic, draw, config, ready, parser, on, dom, array, BorderContainer, ContentPane ) { ready(function () { // Create the map mapMain = new Map("cpCenter") var layerURL = "http://gisaprd/ArcGIS/rest/services/BaseMap_ArcReader_Cached/MapServer"; myLayer = new esri.layers.ArcGISTiledMapServiceLayer(layerURL); mapMain.addLayer(myLayer); dojo.connect(mapMain, "onLoad", initSelectToolbar); button2 = dom.byId("clearButton"); on(button2, "click", clearSelection); var queryTask = new QueryTask("http://gisaprd/ArcGIS/rest/services/SRSOutageTest/MapServer/3"); var query = new Query(); query.returnGeometry = true; query.outFields = ["*"]; query.where = "GIS_X IS NOT NULL"; queryTask.execute(query, showResults, errBack); defaultSymbol = new esri.symbol.SimpleMarkerSymbol().setColor(new dojo.Color([0, 0, 255])); highlightSymbol = new esri.symbol.SimpleMarkerSymbol().setColor(new dojo.Color([255, 0, 0])); }); function initSelectToolbar(mapMain) { selectionToolbar = new esri.toolbars.Draw(mapMain); dojo.connect(selectionToolbar, "onDrawEnd", findPointsInExtent); } function showResults(featureSet) { dojo.forEach(featureSet.features,function(feature){ mapMain.graphics.add(feature.setSymbol(defaultSymbol)); }); } function findPointsInExtent(extent) { var results = []; dojo.forEach(mapMain.graphics.graphics,function(graphic){ if (extent.contains(graphic.geometry)) { graphic.setSymbol(highlightSymbol); } else if (graphic.symbol == highlightSymbol) { graphic.setSymbol(defaultSymbol); } }); } function errBack(results) { alert(results); } function clearSelection(){ selectionToolbar.deactivate(); dojo.forEach(mapMain.graphics.graphics,function(graphic){ graphic.setSymbol(defaultSymbol); }); } });
button2 = dom.byId("clearButton"); on(button2, "click", clearSelection);
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>CP-Isolated Steel Services</title> <!-- Configure dojo for asynchronous module loading --> <script> var dojoConfig = { async: true }; </script> <!-- Reference libraries. The first CSS is a Dojo theme that gives dijits a consistent style. --> <link rel="stylesheet" href="http://js.arcgis.com/3.7/js/dojo/dijit/themes/nihilo/nihilo.css"> <link rel="stylesheet" href="http://js.arcgis.com/3.7/js/esri/css/esri.css"> <link rel="stylesheet" href="css/workwiththemap.css"/> <script src="http://js.arcgis.com/3.7/"></script> <script src="JavaScript/CP_IsolatedSteelServices.js"></script> </head> <body class="nihilo"> <button data-dojo-type="dijit.form.Button" id="selectButton" onClick="selectionToolbar.activate(esri.toolbars.Draw.EXTENT);">Select</button> <button data-dojo-type="dijit.form.Button" id="clearButton">Clear Selection</button><br> <div id="cpCenter" data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="design:'sidebar', liveSplitters:'true'" > </div> </body> </html>
function showResults(results) { var len = results.features.length; var featureSet = new FeatureSet(); featureSet = results; graphicsLayer = new esri.layers.GraphicsLayer(); dojo.forEach(featureSet.features, function (feature,index) { var spID = featureSet.features[index].attributes.SP_ID; var address = featureSet.features[index].attributes.ADDRESS; var callbackstatus = featureSet.features[index].attributes.CALLBACKSTATUS; var meterNumber = featureSet.features[index].attributes.METERNUMBER; feature.geometry = new esri.geometry.Point(featureSet.features[index].attributes.GIS_X, featureSet.features[index].attributes.GIS_Y, new esri.SpatialReference({ wkid: 4326 })); feature.symbol = defaultSymbol; graphicsLayer.add(feature); }); mapMain.addLayer(graphicsLayer); } function findPointsInExtent(extent) { var graphics = graphicsLayer; dojo.forEach(graphics.graphics, function (graphic) { for (var i = 0, il = graphics.graphics.length; i < il; i++) { if (extent.contains(graphic.geometry)) { graphic.setSymbol(highlightSymbol); } else if (graphic.symbol == highlightSymbol) { graphic.setSymbol(defaultSymbol); } } }) }