function highlightGridSelection(event, dGrid) { selGraphicsLayer.clear(); var row = dGrid.row(event); var query = new esri.tasks.Query(); var schName = [row.data.facility]; var cityName = [row.data.city]; query.where = "Facility = '" + schName + "' and " + "City = '" + cityName + "'"; query.returnGeometry = true; query.outFields = ["*"]; query.outSpatialReference = spatialReference; var queryTask = new esri.tasks.QueryTask(educationLayer.url+"/0"); queryTask.execute(query, highlightResults); } function highlightResults(results) { if (results) {//Note: I am consistently getting results from the query task, it's not like it's blank var feature = results.features[0];//already esri.Graphic? var graphic = new Graphic(feature.geometry, highlightMarkerSymbol); //this seems to be the problem line selGraphicsLayer.add(graphic);// // app.map.graphics.add(graphic); } else { console.log("No records found"); } }
markerSymbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_DIAMOND, 28, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255,255,255]), 2), new dojo.Color([255,0,0,0.85])); lineSymbol = new esri.symbol.CartographicLineSymbol(esri.symbol.CartographicLineSymbol.STYLE_SOLID, new dojo.Color([255,0,0]), 10, esri.symbol.CartographicLineSymbol.CAP_ROUND, esri.symbol.CartographicLineSymbol.JOIN_MITER, 5); fillSymbol = 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,255,0,0.85])); // figure out which symbol to use var symbol, g; if ( feature.geometry.type === "point" || feature.geometry.type === "multipoint") { symbol = markerSymbol; } else if ( feature.geometry.type === "line" || feature.geometry.type === "polyline") { symbol = lineSymbol; } else { symbol = fillSymbol; } g = new esri.Graphic(evt, symbol, null, null); selGraphicsLayer.add(g);
function findGraphicByAttribute(attributes) { for (i = 0; i < layerResultsGraphic.graphics.length; i++) { if (JSON.stringify(layerResultsGraphic.graphics.attributes) === JSON.stringify(attributes)) { return layerResultsGraphic.graphics; } } return null; } //this function will highlight the selected feature function gridEnter(e) { map.graphics.clear(); var gridId = e.currentTarget.id; var selectedGrid = dijit.byId(gridId); var row = selectedGrid.row(e); graphicHighlight = findGraphicByAttribute(row.data); if (graphicHighlight !== null) { switch (graphicHighlight.geometry.type) { case "point": case "multipoint": map.graphics.add(new esri.Graphic(graphicHighlight.geometry, symbolHighlightPoint)); break; case "polyline": map.graphics.add(new esri.Graphic(graphicHighlight.geometry, symbolHighlightPolyline)); break; case "polygon": case "extent": map.graphics.add(new esri.Graphic(graphicHighlight.geometry, symbolHighlightPolygon)); break; } } } //this function will "flash" the selected feature function gridSelect(e) { var graphicFlash; var gridId = e.currentTarget.id; var selectedGrid = dijit.byId(gridId); var row = selectedGrid.row(e); graphicHighlight = findGraphicByAttribute(row.data); if (graphicHighlight !== null) { switch (graphicHighlight.geometry.type) { case "point": case "multipoint": graphicFlash = new esri.Graphic(graphicHighlight.geometry, symbolFlashPoint) break; case "polyline": graphicFlash = new esri.Graphic(graphicHighlight.geometry, symbolFlashPolyline); break; case "polygon": case "extent": graphicFlash = new esri.Graphic(graphicHighlight.geometry, symbolFlashPolygon); break; } map.graphics.add(graphicFlash); } var shape = graphicFlash.getDojoShape(); var animStroke = fx.animateStroke({ shape: shape, duration: 500, color: { end: new dojo.Color([0, 0, 0, 0]) } }); var animFill = fx.animateFill({ shape: shape, duration: 500, color: { end: new dojo.Color([0, 0, 0, 0]) } }); var anim = dojo.fx.combine([animStroke, animFill]).play(); var animConnect = dojo.connect(anim, "onEnd", function () { map.graphics.remove(graphicFlash); }); }
arrayUtil.forEach(features, function (f) { //_highlightLayer.add(f); var symbol; if (f.geometry.type === "point" || f.geometry.type === "multipoint") { symbol = config.highlightSymbols.markerSymbol; } else if (f.geometry.type === "line" || f.geometry.type === "polyline") { symbol = config.highlightSymbols.lineSymbol; } else { symbol = config.highlightSymbols.fillSymbol; } f.geometry.spatialReference = map.spatialReference; var g = new Graphic(f, symbol); g.setSymbol(symbol); _highlightLayer.add(g); });
require([
"dojo/parser","esri/config", "esri/map", "esri/dijit/InfoWindow", "esri/dijit/Popup","esri/SpatialReference", "esri/geometry/Extent",
"esri/layers/ArcGISDynamicMapServiceLayer", "esri/layers/GraphicsLayer",
"esri/dijit/BasemapGallery","agsjs/dijit/TOC","esri/tasks/IdentifyTask", "esri/tasks/IdentifyParameters", "esri/InfoTemplate", "esri/tasks/QueryTask",
"esri/tasks/query", "esri/tasks/GeometryService","dojo/_base/array", "dojo/_base/connect", "dojo/on", "dojo/dom","dijit/registry", "dojo/promise/all","esri/symbols/SimpleMarkerSymbol",
"esri/symbols/SimpleFillSymbol", "esri/symbols/SimpleLineSymbol", "dojo/_base/Color", "dijit/layout/BorderContainer", "dijit/layout/ContentPane",
"dijit/TitlePane", "dijit/form/Select", "dgrid/Grid", "esri/graphic", "dojo/domReady!"
], function(
parser, esriConfig, Map, InfoWindow, Popup, SpatialReference, Extent, ArcGISDynamicMapServiceLayer, GraphicsLayer, BasemapGallery, TOC, IdentifyTask, IdentifyParameters,
InfoTemplate, QueryTask, Query, GeometryService, arrayUtils, connect, on, dom, registry, all, SimpleMarkerSymbol,
SimpleFillSymbol, SimpleLineSymbol, Color, BorderContainer, ContentPane, TitlePane, Select, Grid, Graphic) {