<?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 get Extent from Feature Layer after Definition Expression in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/get-extent-from-feature-layer-after-definition/m-p/490921#M45600</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to be able to type a state name in a&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[HTML]&amp;lt;input type="text" id = "statename"&amp;gt;&amp;lt;/input&amp;gt;[/HTML]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and when I click a submit button, two things happen&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1 - draw the state in the map ---&amp;gt; I already did this. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2 - zoom to the state extent. (I don't want to use the infoTemplate and then the Zoom to function. I want to be able to call this Zoom to function when I click the submit button)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
var map, geocoder, extent, sr, currentExtent, censusdef, featureLayer, loadStates, renderer, selected_state;
require(["esri/map", "esri/layers/FeatureLayer", "esri/InfoTemplate",
&amp;nbsp;&amp;nbsp;&amp;nbsp; "esri/symbols/SimpleLineSymbol", "esri/symbols/SimpleFillSymbol",
&amp;nbsp;&amp;nbsp;&amp;nbsp; "esri/renderers/SimpleRenderer", "esri/tasks/query",
&amp;nbsp;&amp;nbsp;&amp;nbsp; "dojo/parser", "dojo/_base/Color",
&amp;nbsp;&amp;nbsp;&amp;nbsp; "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "dojo/domReady!"], 
function(Map, FeatureLayer, InfoTemplate,
&amp;nbsp;&amp;nbsp;&amp;nbsp; SimpleLineSymbol, SimpleFillSymbol,
&amp;nbsp;&amp;nbsp;&amp;nbsp; SimpleRenderer,
&amp;nbsp;&amp;nbsp;&amp;nbsp; parser, Color, Query) { 
&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; center: [-96.24, 38.1],
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoom: 4,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; basemap: "hybrid" 
&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp; sr = new esri.SpatialReference({wkid:4326});
&amp;nbsp;&amp;nbsp;&amp;nbsp; currentExtent = new esri.geometry.Extent();


&amp;nbsp;&amp;nbsp;&amp;nbsp; var symbol = new SimpleFillSymbol().setColor(new Color([255,0,0,0.4]));
&amp;nbsp;&amp;nbsp;&amp;nbsp; var renderer = new SimpleRenderer(symbol);
&amp;nbsp;&amp;nbsp;&amp;nbsp; featureLayer = new esri.layers.FeatureLayer("http://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/2", {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //infoTemplate: new InfoTemplate(" ", "${state_name}"),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; displayOnPan: true,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; styling: true
&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp; var b = document.getElementById('showstate');
&amp;nbsp;&amp;nbsp;&amp;nbsp; var selected_state = document.getElementById('statename').value;
&amp;nbsp;&amp;nbsp;&amp;nbsp; featureLayer.setDefinitionExpression("state_name = '"+selected_state+"'");
&amp;nbsp;&amp;nbsp;&amp;nbsp; featureLayer.setRenderer(renderer);

&amp;nbsp;&amp;nbsp;&amp;nbsp; b.addEventListener('click', function (){&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; var b = document.getElementById('showstate');
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var selected_state = document.getElementById('statename').value;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //featureLayer.setDefinitionExpression("state_name = '"+selected_state+"'");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureLayer.setRenderer(renderer);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.addLayer(featureLayer);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }, false);

});

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;is there anyway to access to the extent of the selected featureLayer? not the entire featurelayer, but only the result after the DefinitionExpression. Something like FeatureLayer.getExtent();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 12 Dec 2021 16:32:13 GMT</pubDate>
    <dc:creator>Roy_A_Justo</dc:creator>
    <dc:date>2021-12-12T16:32:13Z</dc:date>
    <item>
      <title>get Extent from Feature Layer after Definition Expression</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/get-extent-from-feature-layer-after-definition/m-p/490921#M45600</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to be able to type a state name in a&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[HTML]&amp;lt;input type="text" id = "statename"&amp;gt;&amp;lt;/input&amp;gt;[/HTML]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and when I click a submit button, two things happen&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1 - draw the state in the map ---&amp;gt; I already did this. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2 - zoom to the state extent. (I don't want to use the infoTemplate and then the Zoom to function. I want to be able to call this Zoom to function when I click the submit button)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
var map, geocoder, extent, sr, currentExtent, censusdef, featureLayer, loadStates, renderer, selected_state;
require(["esri/map", "esri/layers/FeatureLayer", "esri/InfoTemplate",
&amp;nbsp;&amp;nbsp;&amp;nbsp; "esri/symbols/SimpleLineSymbol", "esri/symbols/SimpleFillSymbol",
&amp;nbsp;&amp;nbsp;&amp;nbsp; "esri/renderers/SimpleRenderer", "esri/tasks/query",
&amp;nbsp;&amp;nbsp;&amp;nbsp; "dojo/parser", "dojo/_base/Color",
&amp;nbsp;&amp;nbsp;&amp;nbsp; "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "dojo/domReady!"], 
function(Map, FeatureLayer, InfoTemplate,
&amp;nbsp;&amp;nbsp;&amp;nbsp; SimpleLineSymbol, SimpleFillSymbol,
&amp;nbsp;&amp;nbsp;&amp;nbsp; SimpleRenderer,
&amp;nbsp;&amp;nbsp;&amp;nbsp; parser, Color, Query) { 
&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; center: [-96.24, 38.1],
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoom: 4,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; basemap: "hybrid" 
&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp; sr = new esri.SpatialReference({wkid:4326});
&amp;nbsp;&amp;nbsp;&amp;nbsp; currentExtent = new esri.geometry.Extent();


&amp;nbsp;&amp;nbsp;&amp;nbsp; var symbol = new SimpleFillSymbol().setColor(new Color([255,0,0,0.4]));
&amp;nbsp;&amp;nbsp;&amp;nbsp; var renderer = new SimpleRenderer(symbol);
&amp;nbsp;&amp;nbsp;&amp;nbsp; featureLayer = new esri.layers.FeatureLayer("http://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/2", {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //infoTemplate: new InfoTemplate(" ", "${state_name}"),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; displayOnPan: true,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; styling: true
&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp; var b = document.getElementById('showstate');
&amp;nbsp;&amp;nbsp;&amp;nbsp; var selected_state = document.getElementById('statename').value;
&amp;nbsp;&amp;nbsp;&amp;nbsp; featureLayer.setDefinitionExpression("state_name = '"+selected_state+"'");
&amp;nbsp;&amp;nbsp;&amp;nbsp; featureLayer.setRenderer(renderer);

&amp;nbsp;&amp;nbsp;&amp;nbsp; b.addEventListener('click', function (){&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; var b = document.getElementById('showstate');
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var selected_state = document.getElementById('statename').value;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //featureLayer.setDefinitionExpression("state_name = '"+selected_state+"'");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureLayer.setRenderer(renderer);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.addLayer(featureLayer);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }, false);

});

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;is there anyway to access to the extent of the selected featureLayer? not the entire featurelayer, but only the result after the DefinitionExpression. Something like FeatureLayer.getExtent();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 16:32:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/get-extent-from-feature-layer-after-definition/m-p/490921#M45600</guid>
      <dc:creator>Roy_A_Justo</dc:creator>
      <dc:date>2021-12-12T16:32:13Z</dc:date>
    </item>
    <item>
      <title>Re: get Extent from Feature Layer after Definition Expression</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/get-extent-from-feature-layer-after-definition/m-p/490922#M45601</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Maybe &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://developers.arcgis.com/javascript/jssamples/find_map_datagrid.html" rel="nofollow" target="_blank"&gt;this example&lt;/A&gt;&lt;SPAN&gt; can help you?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Especially the following part:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Zoom to the parcel when the user clicks a row &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function onRowClickHandler(evt) { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var clickedTaxLotId = evt.grid.getItem(evt.rowIndex).PARCELID; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var selectedTaxLot = arrayUtils.filter(map.graphics.graphics, function (graphic) { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ((graphic.attributes) &amp;amp;&amp;amp; graphic.attributes.PARCELID === clickedTaxLotId); &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; if ( selectedTaxLot.length ) { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.setExtent(selectedTaxLot[0].geometry.getExtent(), true); &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; } &lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Instead of clicking on a row, in your case clicking on a button would have this effect.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope this helps!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Tim&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Apr 2014 14:47:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/get-extent-from-feature-layer-after-definition/m-p/490922#M45601</guid>
      <dc:creator>TimWitt</dc:creator>
      <dc:date>2014-04-08T14:47:28Z</dc:date>
    </item>
    <item>
      <title>Re: get Extent from Feature Layer after Definition Expression</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/get-extent-from-feature-layer-after-definition/m-p/490923#M45602</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks Tim. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is a good approach. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am having a hard time to understand why FeatureLayer object doesn't have a getExtent() Method. According to the API documentation, the purpose of this object was to substitute or enhance the Graphic Layer and server-client interaction. But it seems that if you want to play with zooming and extent you have to dig into graphic.geometry.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks a lot, it was very helpful.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Roy&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Apr 2014 19:51:21 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/get-extent-from-feature-layer-after-definition/m-p/490923#M45602</guid>
      <dc:creator>Roy_A_Justo</dc:creator>
      <dc:date>2014-04-08T19:51:21Z</dc:date>
    </item>
  </channel>
</rss>

