riverLayer = new FeatureLayer(pathName+"/arcgis/rest/services/fishAdvisoryRiver/MapServer/0", {mode: FeatureLayer.MODE_SNAPSHOT, id: "riverLayer", outFields: ["*"], infoTemplate: infoTemplate }); app.map.addLayers([riverLayer]); app.map.on("extent-change", function (currentMap) { currentExtent = app.map.extent; updateGrid(); }); function updateGrid () { var query = new Query(); query.geometry = currentExtent; query.outFields = ["OBJECTID", "NAME", "LABELFIELD"]; query.outSpatialReference = spatialReference; var queryTask = new QueryTask(riverLayer.url); queryTask.on ('error', queryErrorHandler); queryTask.execute(query, updateGridHandler); } function queryErrorHandler(err) { console.log ("error in queryTask is " + err.error); } function updateGridHandler (featureSet) { var data = []; if (grid) { grid.refresh(); } data = arrayUtil.map(featureSet.features, function (feature) { return { 'id': feature.attributes.OBJECTID, 'name': feature.attributes.NAME, 'label': feature.attributes.LABELFIELD }; }); grid = new Grid({ renderRow: renderRowFunction, showHeader: false }, "grid"); grid.renderArray(data); grid.sort('name'); grid.on('.dgrid-row:click',function(event){ var row = grid.row(event); var featureLayer = app.map.getLayer("riverLayer"); var gridQuery = new Query(); gridQuery.objectIds = [row.data.id]; featureLayer.on('error', function(err){ console.log ("error in gridClick is " + err.error); }); featureLayer.on('selection-complete', function (results) { if ( results.length > 0 ) { var feature = results[0]; feature.setInfoTemplate(infoTemplate); app.map.centerAndZoom(results[0].geometry,14); var resultGeometry = results[0].geometry; app.map.infoWindow.setFeatures(results); app.map.infoWindow.show(resultGeometry); } }); featureLayer.selectFeatures(gridQuery); }); } function renderRowFunction (obj,options) { var template = '<div class="title">${0}</div><div class="subtitle"><div class="details">${1}</div>'; return dojo.create("div",{ innerHTML : dojo.string.substitute(template,[obj.name,obj.label]) }); }
// ORIGINAL GRID CLICK CODE grid.on('.dgrid-row:click',function(event){ var row = grid.row(event); var featureLayer = app.map.getLayer("riverLayer"); var gridQuery = new Query(); gridQuery.objectIds = [row.data.id]; featureLayer.selectFeatures(gridQuery, esri.layers.FeatureLayer.SELECTION_NEW, function(results) { if ( results.length > 0 ) { var feature = results[0]; feature.setInfoTemplate(infoTemplate); app.map.centerAndZoom(results[0].geometry,14); var resultGeometry = results[0].geometry; app.map.infoWindow.setFeatures(results); app.map.infoWindow.show(resultGeometry); } }); });
Solved! Go to Solution.
grid.on('.dgrid-row:click',function(event){ var row = grid.row(event); var featureLayer = app.map.getLayer("riverLayer"); var gridQuery = new Query(); gridQuery.objectIds = [row.data.id]; featureLayer.on('error', function(err){ console.log ("error in gridClick is " + err.error); }); featureLayer.on('selection-complete', function (results) { if ( results.features.length > 0 ) { var feature = results.features[0]; app.map.setExtent(feature.geometry.getExtent()); feature.setInfoTemplate(infoTemplate); var vertices = feature.geometry.paths[0].length; var centerPtLoc = Number.round(vertices/2, 0); //center vertex var centerPt = feature.geometry.getPoint(0,centerPtLoc); app.map.infoWindow.setFeatures(results.features); app.map.infoWindow.show(centerPt); } }); featureLayer.selectFeatures(gridQuery); }); }
app.map.setExtent(results[0].geometry.getExtent(),true);
grid.on('.dgrid-row:click',function(event){ var row = grid.row(event); var featureLayer = app.map.getLayer("riverLayer"); var gridQuery = new Query(); gridQuery.objectIds = [row.data.id]; featureLayer.on('error', function(err){ console.log ("error in gridClick is " + err.error); }); featureLayer.on('selection-complete', function (results) { if ( results.features.length > 0 ) { var feature = results.features[0]; feature.setInfoTemplate(infoTemplate); app.map.setExtent(feature.geometry.getExtent()); var resultGeometry = feature.geometry; // app.map.infoWindow.setFeatures(results); // app.map.infoWindow.show(resultGeometry); } }); featureLayer.selectFeatures(gridQuery); }); }
var point = new Point(results[0].geometry.paths[0][0],results[0].geometry.spatialReference); app.map.infoWindow.show(point);
grid.on('.dgrid-row:click',function(event){ var row = grid.row(event); var featureLayer = app.map.getLayer("riverLayer"); var gridQuery = new Query(); gridQuery.objectIds = [row.data.id]; featureLayer.on('error', function(err){ console.log ("error in gridClick is " + err.error); }); featureLayer.on('selection-complete', function (results) { if ( results.features.length > 0 ) { var feature = results.features[0]; app.map.setExtent(feature.geometry.getExtent()); feature.setInfoTemplate(infoTemplate); var vertices = feature.geometry.paths[0].length; var centerPtLoc = Number.round(vertices/2, 0); //center vertex var centerPt = feature.geometry.getPoint(0,centerPtLoc); app.map.infoWindow.setFeatures(results.features); app.map.infoWindow.show(centerPt); } }); featureLayer.selectFeatures(gridQuery); }); }