function init() { //initialize popup window var popup = new esri.dijit.Popup({ 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.25])) }, dojo.create("div")); //add geometry service from server esri.config.defaults.geometryService = new esri.tasks.GeometryService("http://2501s-jjohnson:6080/arcgis/rest/services/Utilities/Geometry/GeometryServer"); //initalize map app.map = new esri.Map("map", { basemap : "satellite", center : [-111.924531, 40.611871], zoom : 13, infoWindow: popup }); //query parcel and show info in popup window function executeIdentifyTask(evt) { var query = new esri.tasks.Query(); query.geometry = pointToExtent(app.map,evt.mapPoint,10); var deferred = featureParcel.selectFeatures(query,esri.layers.FeatureLayer.SELECTION_NEW); app.map.infoWindow.setFeatures([deferred]); app.map.infoWindow.show(evt.mapPoint); console.log(evt.mapPoint); } //trigger feature layer parcel query if parcels are turned on function clickConnect(connect){ if(connect){ //perform the identify task on click clickHandler = dojo.connect(app.map, "onClick", executeIdentifyTask); }else{ //disconnect the click handler dojo.disconnect(clickHandler); clickHandler = null; } } //add parcel layer var parcels = new esri.layers.ArcGISDynamicMapServiceLayer("http://2501s-jjohnson:6080/arcgis/rest/services/Parcels_UT/MapServer", { id : 'parcels', visible : false }); parcelLayer.push({ layer : parcels, title : 'Parcels' }); //add parcel feature layer query info for popup window var content = "<b>Address</b>: ${ADDR}" + "<br /><b>Owner Name</b>: ${OWNER}" + "<br /><b>Parcel ID</b>: ${APN}" + "<br /><b>City</b>: ${CITY}" + "<br /><b>Acres</b>: ${TOTAL_ACRES}"+ " <br /><a href='${COUNTY_LINK}' target='_blank'>County Assessor Site</a>" var popUpTemplate = new esri.InfoTemplate("Parcel", content); //add parcel feature layer featureParcel = new esri.layers.FeatureLayer("http://2501s-jjohnson:6080/arcgis/rest/services/Parcels_UT/MapServer/0",{ mode: esri.layers.FeatureLayer.MODE_SELECTION, outFields: ["*"], infoTemplate:popUpTemplate }); //set selection Symbol var selectionSymbol = new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([255,255,0,0.5])); selectionSymbol.setOutline(new esri.symbol.SimpleLineSymbol("solid", new dojo.Color([255,0,0]), 2)); featureParcel.setSelectionSymbol(selectionSymbol); //create legend dojo.connect(app.map, 'onLayersAddResult', function(results) { var legend = new esri.dijit.Legend({ map : app.map, layerInfos : legendLayers }, "retail"); legend.startup(); }); //add all layers to map app.map.addLayers([parcels]); //add layer arrays into legend object legendLayers["parcel"] = parcelLayer; dojo.connect(app.map, 'onLayersAddResult', function(results) { //for each layer array in legend object for (var k in legendLayers){ //add legend check boxes for each layer //to toggle layer visibility dojo.forEach(legendLayers, function(layer) { var layerName = layer.title; var checkBox = new dijit.form.CheckBox({ name : "checkBox" + layer.layer.id, value : layer.layer.id, checked : layer.layer.visible, onChange : function(evt) { var clayer = app.map.getLayer(this.value); clayer.setVisibility(!clayer.visible); this.checked = clayer.visible; //toggle the feature layer parcel query //parcelClick indicates whether the parcel layer is on if (this.value ==="parcels" && this.checked === true){ clickConnect(true); parcelClick = true; } else if (this.value ==="parcels"){ clickConnect(false); parcelClick = false; } } }); //add the check box and label to the table of contnents dojo.place(checkBox.domNode, dojo.byId(k), "after"); var checkLabel = dojo.create('label', { 'for' : checkBox.name, innerHTML : layerName }, checkBox.domNode, "after"); dojo.place("<br />", checkLabel, "after"); }); } }); dojo.connect(app.map, "onLoad", initSelectToolbar); } 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; var deferred = featureParcel.selectFeatures(selectQuery, esri.layers.FeatureLayer.SELECTION_NEW); app.map.infoWindow.setFeatures([deferred]); app.map.infoWindow.show(); }); } function pointToExtent(map, point, toleranceInPixel) { var pixelWidth = map.extent.getWidth() / map.width; var toleraceInMapCoords = toleranceInPixel * pixelWidth; return new esri.geometry.Extent( point.x - toleraceInMapCoords, point.y - toleraceInMapCoords, point.x + toleraceInMapCoords, point.y + toleraceInMapCoords, map.spatialReference ); } dojo.ready(init);
Solved! Go to Solution.
Hi Alex,
I have gone through the code, i think you forgot to add the featureParcel to the map.
Rahul