<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Popup content on multiple features in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/popup-content-on-multiple-features/m-p/139188#M12957</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;Thanks Ken, that wasn't exactly what I was trying to do but taking another look at the IdentifyTask example helped me to get where I needed to go. I actually have two feature layers that I want to get results from (Segments and Intersections). I was able to used the deferred.addCallback and the dojo.map methods from the IdentifyTask example to combine the results and get the content into the popup. In case anyone is interested, here is what I came up with...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;dojo.connect(map, "onClick", function (evt) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; var query = new esri.tasks.Query();
&amp;nbsp;&amp;nbsp;&amp;nbsp; //Query within 20 pixels of click point
&amp;nbsp;&amp;nbsp;&amp;nbsp; query.geometry = pointToExtent(map, evt.mapPoint, 20);
&amp;nbsp;&amp;nbsp;&amp;nbsp; //I have two feature layers with setDefinitionExpression applied (intersections, segments)
&amp;nbsp;&amp;nbsp;&amp;nbsp; var deferred = featureLayerSeg.selectFeatures(query, esri.layers.FeatureLayer.SELECTION_NEW);
&amp;nbsp;&amp;nbsp;&amp;nbsp; deferred.addCallback(function (responseSeg) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var response;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var deferInt = featureLayerInt.selectFeatures(query, esri.layers.FeatureLayer.SELECTION_NEW);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deferInt.addCallback(function (responseInt) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Concatenate the arrays of selected features from the two feature layers
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response = responseSeg.concat(responseInt);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return dojo.map(response, function (result) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var content = getPopupContent();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var template = new esri.InfoTemplate("", content);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.setInfoTemplate(template);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp; popup.setFeatures([deferred]);
&amp;nbsp;&amp;nbsp;&amp;nbsp; popup.show(evt.mapPoint);
&amp;nbsp; });

&amp;nbsp; function getPopupContent() {
&amp;nbsp;&amp;nbsp;&amp;nbsp; var viewPermitLink = "&amp;lt;a href=\"javascript:ExecuteViewPermit('${PermitNumber}');\"&amp;gt;View Details&amp;lt;/a&amp;gt;";
&amp;nbsp;&amp;nbsp;&amp;nbsp; var streetViewLink = "&amp;lt;a href=\"javascript:showMapInDialog('${PermitNumber}');\"&amp;gt;Street View&amp;lt;/a&amp;gt;";
&amp;nbsp;&amp;nbsp;&amp;nbsp; var content = "&amp;lt;b&amp;gt;Permit Number&amp;lt;/b&amp;gt;: ${PermitNumber}" + "&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;On Street&amp;lt;/b&amp;gt;: ${OnStreetName}" + "&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;From Street&amp;lt;/b&amp;gt;: ${FromStreetName}" + "&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;To Street&amp;lt;/b&amp;gt;: ${ToStreetName}" + "&amp;lt;br&amp;gt;" + viewPermitLink + "&amp;nbsp; " + streetViewLink;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return content;
&amp;nbsp; }&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV style="display: none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 07:42:09 GMT</pubDate>
    <dc:creator>ChadWilcomb</dc:creator>
    <dc:date>2021-12-11T07:42:09Z</dc:date>
    <item>
      <title>Popup content on multiple features</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/popup-content-on-multiple-features/m-p/139186#M12955</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have a popup that is called in an onclick event on the map. The click selects features from a feature layer within 20 pixels of the click, so the results can contain multiple features. I have the popup showing mutliple features but I cannot set the content of the popup to show the features' information. I have attached an image of the popup. I can set the content when using InfoWindow on the feature layer, but then I only get one feature (the one on top). Any suggestions? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chad&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my code...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;function init() {&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; lowerMHExtent_SP = new esri.geometry.Extent({ "xmin": 975650, "ymin": 194070, "xmax": 991760, "ymax": 203000, "spatialReference": { "wkid": 2263} });&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //Define the Popup for InfoWindow &amp;nbsp;&amp;nbsp;&amp;nbsp; var popup = new esri.dijit.Popup(null, dojo.create("div")); &amp;nbsp;&amp;nbsp;&amp;nbsp; popup.setContent("&amp;lt;b&amp;gt;Permit Number&amp;lt;/b&amp;gt;: ${PermitNumber}");&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; map = new esri.Map("map", { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extent: lowerMHExtent_SP, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width: 800, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; infoWindow: popup, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; height: 600, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logo: false &amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var basemap_gray = "http://myserver/ArcGIS/rest/services/basemap_gray/MapServer"; &amp;nbsp;&amp;nbsp;&amp;nbsp; var basemap = new esri.layers.ArcGISTiledMapServiceLayer(basemap_gray); &amp;nbsp;&amp;nbsp;&amp;nbsp; map.addLayer(basemap);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dojo.connect(map, "onClick", function (evt) { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var query = new esri.tasks.Query(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Query within 20 pixels of click point &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.geometry = pointToExtent(map, evt.mapPoint, 20); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //flPermits is a feature layer that has had setDefinitionExpression applied to show only select features &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var deferred = flPermits.selectFeatures(query, esri.layers.FeatureLayer.SELECTION_NEW); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; popup.setFeatures([deferred]); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; popup.show(evt.mapPoint);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }); }&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]12761[/ATTACH]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Mar 2012 13:00:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/popup-content-on-multiple-features/m-p/139186#M12955</guid>
      <dc:creator>ChadWilcomb</dc:creator>
      <dc:date>2012-03-16T13:00:07Z</dc:date>
    </item>
    <item>
      <title>Re: Popup content on multiple features</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/popup-content-on-multiple-features/m-p/139187#M12956</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Take a look at Derek Swingley's post in this &lt;/SPAN&gt;&lt;A href="http://gis.stackexchange.com/questions/12321/identify-all-layers-on-the-map-without-pre-designing-the-infowindow"&gt;thread&lt;/A&gt;&lt;SPAN&gt; over on GIS.StackExchange.com&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Mar 2012 14:52:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/popup-content-on-multiple-features/m-p/139187#M12956</guid>
      <dc:creator>KenBuja</dc:creator>
      <dc:date>2012-03-16T14:52:16Z</dc:date>
    </item>
    <item>
      <title>Re: Popup content on multiple features</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/popup-content-on-multiple-features/m-p/139188#M12957</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;Thanks Ken, that wasn't exactly what I was trying to do but taking another look at the IdentifyTask example helped me to get where I needed to go. I actually have two feature layers that I want to get results from (Segments and Intersections). I was able to used the deferred.addCallback and the dojo.map methods from the IdentifyTask example to combine the results and get the content into the popup. In case anyone is interested, here is what I came up with...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;dojo.connect(map, "onClick", function (evt) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; var query = new esri.tasks.Query();
&amp;nbsp;&amp;nbsp;&amp;nbsp; //Query within 20 pixels of click point
&amp;nbsp;&amp;nbsp;&amp;nbsp; query.geometry = pointToExtent(map, evt.mapPoint, 20);
&amp;nbsp;&amp;nbsp;&amp;nbsp; //I have two feature layers with setDefinitionExpression applied (intersections, segments)
&amp;nbsp;&amp;nbsp;&amp;nbsp; var deferred = featureLayerSeg.selectFeatures(query, esri.layers.FeatureLayer.SELECTION_NEW);
&amp;nbsp;&amp;nbsp;&amp;nbsp; deferred.addCallback(function (responseSeg) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var response;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var deferInt = featureLayerInt.selectFeatures(query, esri.layers.FeatureLayer.SELECTION_NEW);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deferInt.addCallback(function (responseInt) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Concatenate the arrays of selected features from the two feature layers
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response = responseSeg.concat(responseInt);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return dojo.map(response, function (result) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var content = getPopupContent();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var template = new esri.InfoTemplate("", content);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.setInfoTemplate(template);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp; popup.setFeatures([deferred]);
&amp;nbsp;&amp;nbsp;&amp;nbsp; popup.show(evt.mapPoint);
&amp;nbsp; });

&amp;nbsp; function getPopupContent() {
&amp;nbsp;&amp;nbsp;&amp;nbsp; var viewPermitLink = "&amp;lt;a href=\"javascript:ExecuteViewPermit('${PermitNumber}');\"&amp;gt;View Details&amp;lt;/a&amp;gt;";
&amp;nbsp;&amp;nbsp;&amp;nbsp; var streetViewLink = "&amp;lt;a href=\"javascript:showMapInDialog('${PermitNumber}');\"&amp;gt;Street View&amp;lt;/a&amp;gt;";
&amp;nbsp;&amp;nbsp;&amp;nbsp; var content = "&amp;lt;b&amp;gt;Permit Number&amp;lt;/b&amp;gt;: ${PermitNumber}" + "&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;On Street&amp;lt;/b&amp;gt;: ${OnStreetName}" + "&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;From Street&amp;lt;/b&amp;gt;: ${FromStreetName}" + "&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;To Street&amp;lt;/b&amp;gt;: ${ToStreetName}" + "&amp;lt;br&amp;gt;" + viewPermitLink + "&amp;nbsp; " + streetViewLink;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return content;
&amp;nbsp; }&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV style="display: none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 07:42:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/popup-content-on-multiple-features/m-p/139188#M12957</guid>
      <dc:creator>ChadWilcomb</dc:creator>
      <dc:date>2021-12-11T07:42:09Z</dc:date>
    </item>
  </channel>
</rss>

