<?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: how to publish a mapservice with a query function in ArcGIS API for Flex Questions</title>
    <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/how-to-publish-a-mapservice-with-a-query-function/m-p/464537#M10703</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;take a look on &lt;/SPAN&gt;&lt;A href="http://resources.arcgis.com/en/help/flex-api/apiref/com/esri/ags/layers/ArcGISDynamicMapServiceLayer.html#layerDefinitions" rel="nofollow noopener noreferrer" target="_blank"&gt;layer definitions&lt;/A&gt;&lt;SPAN&gt; property for ArcGISDynamicMapServiceLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:s="library://ns.adobe.com/flex/spark" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:mx="library://ns.adobe.com/flex/mx" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:esri="http://www.esri.com/2008/ags"&amp;gt;
 &amp;lt;!-- ArcGIS API 3.1 --&amp;gt;
 &amp;lt;!-- Adobe SDK 4.6 --&amp;gt;
 &amp;lt;s:layout&amp;gt;
&amp;nbsp; &amp;lt;s:VerticalLayout paddingBottom="10"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paddingLeft="10"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paddingRight="10"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paddingTop="10"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gap="10"/&amp;gt;
 &amp;lt;/s:layout&amp;gt;
 
 &amp;lt;fx:Script&amp;gt;
&amp;nbsp; &amp;lt;![CDATA[
&amp;nbsp;&amp;nbsp; import com.esri.ags.events.LayerEvent;
&amp;nbsp;&amp;nbsp; import com.esri.ags.layers.supportClasses.LayerDefinition;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; import mx.collections.ArrayCollection;
&amp;nbsp;&amp;nbsp; import mx.utils.StringUtil;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; import spark.events.IndexChangeEvent;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; [Bindable]
&amp;nbsp;&amp;nbsp; private var definitions:Array;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; [Bindable]
&amp;nbsp;&amp;nbsp; private var visibleLayers:ArrayCollection = new ArrayCollection([1]);
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; [Bindable]
&amp;nbsp;&amp;nbsp; private var landuseNames:ArrayCollection = new ArrayCollection(
&amp;nbsp;&amp;nbsp;&amp;nbsp; [
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "GENERAL COMM. AND OFFICE",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "INDUSTRIAL",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "MULTI-FAMILY RESIDENTIAL",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "PARKS, CEMETERIES, ETC.",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "PUBLIC AND SEMI-PUBLIC",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "SINGLE FAMILY RESIDENTIAL",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "VACANT AND UNDEVELOPED"&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; ]
&amp;nbsp;&amp;nbsp; );
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; [Bindable]
&amp;nbsp;&amp;nbsp; private var definitionConditions:ArrayCollection = new ArrayCollection(
&amp;nbsp;&amp;nbsp;&amp;nbsp; [
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "like",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "equals"
&amp;nbsp;&amp;nbsp;&amp;nbsp; ]
&amp;nbsp;&amp;nbsp; );
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; [Bindable]
&amp;nbsp;&amp;nbsp; private var defPart1:String = "LANDUSE_NAME";
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; protected function onSetDefinitionClick(event:MouseEvent):void
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; definitions = new Array(); // reset definitions
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; var layerDefinition:LayerDefinition = new LayerDefinition();
&amp;nbsp;&amp;nbsp;&amp;nbsp; layerDefinition.layerId = 1; // "LandUse"
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ddlConditions.selectedIndex == 1) // equals
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layerDefinition.definition = StringUtil.substitute("{0} = '{1}'", defPart1, ddlValues.selectedItem);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; else // like
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layerDefinition.definition = StringUtil.substitute("{0} like '%{1}%'", defPart1, txtInput.text);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; definitions.push(layerDefinition);
&amp;nbsp;&amp;nbsp;&amp;nbsp; // set cursor busy, and restore it after update ended
&amp;nbsp;&amp;nbsp;&amp;nbsp; map.cursorManager.setBusyCursor();
&amp;nbsp;&amp;nbsp;&amp;nbsp; dynamicLayer.addEventListener(LayerEvent.UPDATE_END, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function onUpdateEnd(event:LayerEvent):void {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dynamicLayer.removeEventListener(LayerEvent.UPDATE_END, onUpdateEnd);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.cursorManager.removeBusyCursor();
&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp; // update layer
&amp;nbsp;&amp;nbsp;&amp;nbsp; dynamicLayer.refresh();
&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp; protected function onClearDefinitionClick(event:MouseEvent):void
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; definitions = null; // remove definitions
&amp;nbsp;&amp;nbsp;&amp;nbsp; // set cursor busy, and restore it after update ended
&amp;nbsp;&amp;nbsp;&amp;nbsp; map.cursorManager.setBusyCursor();
&amp;nbsp;&amp;nbsp;&amp;nbsp; dynamicLayer.addEventListener(LayerEvent.UPDATE_END, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function onUpdateEnd(event:LayerEvent):void {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dynamicLayer.removeEventListener(LayerEvent.UPDATE_END, onUpdateEnd);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.cursorManager.removeBusyCursor();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp; // update layer
&amp;nbsp;&amp;nbsp;&amp;nbsp; dynamicLayer.refresh();
&amp;nbsp;&amp;nbsp; }


&amp;nbsp;&amp;nbsp; protected function onConditionChange(event:IndexChangeEvent):void
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; // switch inputs
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ddlConditions.selectedIndex == 0) //like
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtInput.visible = txtInput.includeInLayout = true;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddlValues.visible = ddlValues.includeInLayout = false;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtInput.visible = txtInput.includeInLayout = false;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddlValues.visible = ddlValues.includeInLayout = true;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; }

&amp;nbsp; ]]&amp;gt;
 &amp;lt;/fx:Script&amp;gt;
 
 &amp;lt;s:HGroup verticalAlign="middle" gap="10"&amp;gt;
&amp;nbsp; &amp;lt;s:Label text="{defPart1}" /&amp;gt;
&amp;nbsp; &amp;lt;s:DropDownList id="ddlConditions"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; selectedIndex="0"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataProvider="{definitionConditions}"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; change="onConditionChange(event)"/&amp;gt;
&amp;nbsp; &amp;lt;s:TextInput id="txtInput"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width="250"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; text="PUBLIC"/&amp;gt;
&amp;nbsp; &amp;lt;s:DropDownList id="ddlValues"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; selectedIndex="0"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width="250"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataProvider="{landuseNames}"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; visible="false"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; includeInLayout="false" /&amp;gt;
&amp;nbsp; &amp;lt;s:Button label="Set definition" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; click="onSetDefinitionClick(event)" /&amp;gt;
&amp;nbsp; &amp;lt;s:Button label="No definition" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; click="onClearDefinitionClick(event)" /&amp;gt;
 &amp;lt;/s:HGroup&amp;gt;
 
 &amp;lt;esri:Map id="map"&amp;gt;
&amp;nbsp; &amp;lt;esri:ArcGISDynamicMapServiceLayer id="dynamicLayer" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Louisville/LOJIC_LandRecords_Louisville/MapServer" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layerDefinitions="{definitions}" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; visibleLayers="{visibleLayers}"/&amp;gt;
 &amp;lt;/esri:Map&amp;gt;
 
&amp;lt;/s:Application&amp;gt;
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Louisville/LOJIC_LandRecords_Louisville/MapServer/export?dpi=96&amp;amp;format=png8&amp;amp;bbox=-86%2E14714192133503%2C37%2E8785792505711%2C-85%2E20482638409747%2C38%2E4978151750415&amp;amp;layers=show%3A1&amp;amp;bboxSR=4326&amp;amp;imageSR=4326&amp;amp;transparent=true&amp;amp;size=1260%2C828&amp;amp;f=image" rel="nofollow noopener noreferrer" target="_blank"&gt;layer definition not set&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Louisville/LOJIC_LandRecords_Louisville/MapServer/export?dpi=96&amp;amp;format=png8&amp;amp;bbox=-86%2E14714192133503%2C37%2E8785792505711%2C-85%2E20482638409747%2C38%2E4978151750415&amp;amp;layers=show%3A1&amp;amp;bboxSR=4326&amp;amp;imageSR=4326&amp;amp;_ts=1357823392692&amp;amp;transparent=true&amp;amp;size=1260%2C828&amp;amp;f=image&amp;amp;layerDefs=1%3ALANDUSE_NAME%20%3D%20" industrial="INDUSTRIAL" rel="nofollow noopener noreferrer" target="_blank"&gt;with layer definition&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;From &lt;/SPAN&gt;&lt;A href="http://sampleserver1.arcgisonline.com/ArcGIS/SDK/REST/export.html" rel="nofollow noopener noreferrer" target="_blank"&gt;REST API&lt;/A&gt;&lt;SPAN&gt; help&lt;/SPAN&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Definition expression allows you to filter the features of individual layers in the exported map by specifying definition expressions for those layers.&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 20:37:52 GMT</pubDate>
    <dc:creator>IvanBespalov</dc:creator>
    <dc:date>2021-12-11T20:37:52Z</dc:date>
    <item>
      <title>how to publish a mapservice with a query function</title>
      <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/how-to-publish-a-mapservice-with-a-query-function/m-p/464536#M10702</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;dear all, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;i am looking for a solution to publish a map service with a query parameters &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for example : i have&amp;nbsp; servicemaplayer of&amp;nbsp; parcel and building&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;then i want to only show a town by using a fields "CITY" or "ZIP" (common to all my layers) like a query or a thematic&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;esri:ArcGISDynamicMapServiceLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; load="myMap.extent = myKansasLayer.fullExtent"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id="myKansasLayer"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query="city like "louisville"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url="&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Louisville/LOJIC_LandRecords_Louisville/MapServer/1" rel="nofollow" target="_blank"&gt;http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Louisville/LOJIC_LandRecords_Louisville/MapServer/1&lt;/A&gt;&lt;SPAN&gt;" /&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Rt&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;happy new year&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Jan 2013 06:14:27 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-flex-questions/how-to-publish-a-mapservice-with-a-query-function/m-p/464536#M10702</guid>
      <dc:creator>trannoyronan</dc:creator>
      <dc:date>2013-01-10T06:14:27Z</dc:date>
    </item>
    <item>
      <title>Re: how to publish a mapservice with a query function</title>
      <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/how-to-publish-a-mapservice-with-a-query-function/m-p/464537#M10703</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;take a look on &lt;/SPAN&gt;&lt;A href="http://resources.arcgis.com/en/help/flex-api/apiref/com/esri/ags/layers/ArcGISDynamicMapServiceLayer.html#layerDefinitions" rel="nofollow noopener noreferrer" target="_blank"&gt;layer definitions&lt;/A&gt;&lt;SPAN&gt; property for ArcGISDynamicMapServiceLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:s="library://ns.adobe.com/flex/spark" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:mx="library://ns.adobe.com/flex/mx" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:esri="http://www.esri.com/2008/ags"&amp;gt;
 &amp;lt;!-- ArcGIS API 3.1 --&amp;gt;
 &amp;lt;!-- Adobe SDK 4.6 --&amp;gt;
 &amp;lt;s:layout&amp;gt;
&amp;nbsp; &amp;lt;s:VerticalLayout paddingBottom="10"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paddingLeft="10"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paddingRight="10"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paddingTop="10"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gap="10"/&amp;gt;
 &amp;lt;/s:layout&amp;gt;
 
 &amp;lt;fx:Script&amp;gt;
&amp;nbsp; &amp;lt;![CDATA[
&amp;nbsp;&amp;nbsp; import com.esri.ags.events.LayerEvent;
&amp;nbsp;&amp;nbsp; import com.esri.ags.layers.supportClasses.LayerDefinition;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; import mx.collections.ArrayCollection;
&amp;nbsp;&amp;nbsp; import mx.utils.StringUtil;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; import spark.events.IndexChangeEvent;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; [Bindable]
&amp;nbsp;&amp;nbsp; private var definitions:Array;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; [Bindable]
&amp;nbsp;&amp;nbsp; private var visibleLayers:ArrayCollection = new ArrayCollection([1]);
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; [Bindable]
&amp;nbsp;&amp;nbsp; private var landuseNames:ArrayCollection = new ArrayCollection(
&amp;nbsp;&amp;nbsp;&amp;nbsp; [
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "GENERAL COMM. AND OFFICE",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "INDUSTRIAL",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "MULTI-FAMILY RESIDENTIAL",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "PARKS, CEMETERIES, ETC.",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "PUBLIC AND SEMI-PUBLIC",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "SINGLE FAMILY RESIDENTIAL",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "VACANT AND UNDEVELOPED"&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; ]
&amp;nbsp;&amp;nbsp; );
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; [Bindable]
&amp;nbsp;&amp;nbsp; private var definitionConditions:ArrayCollection = new ArrayCollection(
&amp;nbsp;&amp;nbsp;&amp;nbsp; [
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "like",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "equals"
&amp;nbsp;&amp;nbsp;&amp;nbsp; ]
&amp;nbsp;&amp;nbsp; );
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; [Bindable]
&amp;nbsp;&amp;nbsp; private var defPart1:String = "LANDUSE_NAME";
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; protected function onSetDefinitionClick(event:MouseEvent):void
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; definitions = new Array(); // reset definitions
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; var layerDefinition:LayerDefinition = new LayerDefinition();
&amp;nbsp;&amp;nbsp;&amp;nbsp; layerDefinition.layerId = 1; // "LandUse"
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ddlConditions.selectedIndex == 1) // equals
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layerDefinition.definition = StringUtil.substitute("{0} = '{1}'", defPart1, ddlValues.selectedItem);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; else // like
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layerDefinition.definition = StringUtil.substitute("{0} like '%{1}%'", defPart1, txtInput.text);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; definitions.push(layerDefinition);
&amp;nbsp;&amp;nbsp;&amp;nbsp; // set cursor busy, and restore it after update ended
&amp;nbsp;&amp;nbsp;&amp;nbsp; map.cursorManager.setBusyCursor();
&amp;nbsp;&amp;nbsp;&amp;nbsp; dynamicLayer.addEventListener(LayerEvent.UPDATE_END, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function onUpdateEnd(event:LayerEvent):void {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dynamicLayer.removeEventListener(LayerEvent.UPDATE_END, onUpdateEnd);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.cursorManager.removeBusyCursor();
&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp; // update layer
&amp;nbsp;&amp;nbsp;&amp;nbsp; dynamicLayer.refresh();
&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp; protected function onClearDefinitionClick(event:MouseEvent):void
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; definitions = null; // remove definitions
&amp;nbsp;&amp;nbsp;&amp;nbsp; // set cursor busy, and restore it after update ended
&amp;nbsp;&amp;nbsp;&amp;nbsp; map.cursorManager.setBusyCursor();
&amp;nbsp;&amp;nbsp;&amp;nbsp; dynamicLayer.addEventListener(LayerEvent.UPDATE_END, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function onUpdateEnd(event:LayerEvent):void {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dynamicLayer.removeEventListener(LayerEvent.UPDATE_END, onUpdateEnd);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.cursorManager.removeBusyCursor();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp; // update layer
&amp;nbsp;&amp;nbsp;&amp;nbsp; dynamicLayer.refresh();
&amp;nbsp;&amp;nbsp; }


&amp;nbsp;&amp;nbsp; protected function onConditionChange(event:IndexChangeEvent):void
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; // switch inputs
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ddlConditions.selectedIndex == 0) //like
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtInput.visible = txtInput.includeInLayout = true;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddlValues.visible = ddlValues.includeInLayout = false;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtInput.visible = txtInput.includeInLayout = false;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddlValues.visible = ddlValues.includeInLayout = true;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; }

&amp;nbsp; ]]&amp;gt;
 &amp;lt;/fx:Script&amp;gt;
 
 &amp;lt;s:HGroup verticalAlign="middle" gap="10"&amp;gt;
&amp;nbsp; &amp;lt;s:Label text="{defPart1}" /&amp;gt;
&amp;nbsp; &amp;lt;s:DropDownList id="ddlConditions"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; selectedIndex="0"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataProvider="{definitionConditions}"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; change="onConditionChange(event)"/&amp;gt;
&amp;nbsp; &amp;lt;s:TextInput id="txtInput"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width="250"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; text="PUBLIC"/&amp;gt;
&amp;nbsp; &amp;lt;s:DropDownList id="ddlValues"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; selectedIndex="0"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width="250"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataProvider="{landuseNames}"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; visible="false"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; includeInLayout="false" /&amp;gt;
&amp;nbsp; &amp;lt;s:Button label="Set definition" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; click="onSetDefinitionClick(event)" /&amp;gt;
&amp;nbsp; &amp;lt;s:Button label="No definition" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; click="onClearDefinitionClick(event)" /&amp;gt;
 &amp;lt;/s:HGroup&amp;gt;
 
 &amp;lt;esri:Map id="map"&amp;gt;
&amp;nbsp; &amp;lt;esri:ArcGISDynamicMapServiceLayer id="dynamicLayer" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Louisville/LOJIC_LandRecords_Louisville/MapServer" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layerDefinitions="{definitions}" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; visibleLayers="{visibleLayers}"/&amp;gt;
 &amp;lt;/esri:Map&amp;gt;
 
&amp;lt;/s:Application&amp;gt;
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Louisville/LOJIC_LandRecords_Louisville/MapServer/export?dpi=96&amp;amp;format=png8&amp;amp;bbox=-86%2E14714192133503%2C37%2E8785792505711%2C-85%2E20482638409747%2C38%2E4978151750415&amp;amp;layers=show%3A1&amp;amp;bboxSR=4326&amp;amp;imageSR=4326&amp;amp;transparent=true&amp;amp;size=1260%2C828&amp;amp;f=image" rel="nofollow noopener noreferrer" target="_blank"&gt;layer definition not set&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Louisville/LOJIC_LandRecords_Louisville/MapServer/export?dpi=96&amp;amp;format=png8&amp;amp;bbox=-86%2E14714192133503%2C37%2E8785792505711%2C-85%2E20482638409747%2C38%2E4978151750415&amp;amp;layers=show%3A1&amp;amp;bboxSR=4326&amp;amp;imageSR=4326&amp;amp;_ts=1357823392692&amp;amp;transparent=true&amp;amp;size=1260%2C828&amp;amp;f=image&amp;amp;layerDefs=1%3ALANDUSE_NAME%20%3D%20" industrial="INDUSTRIAL" rel="nofollow noopener noreferrer" target="_blank"&gt;with layer definition&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;From &lt;/SPAN&gt;&lt;A href="http://sampleserver1.arcgisonline.com/ArcGIS/SDK/REST/export.html" rel="nofollow noopener noreferrer" target="_blank"&gt;REST API&lt;/A&gt;&lt;SPAN&gt; help&lt;/SPAN&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Definition expression allows you to filter the features of individual layers in the exported map by specifying definition expressions for those layers.&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 20:37:52 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-flex-questions/how-to-publish-a-mapservice-with-a-query-function/m-p/464537#M10703</guid>
      <dc:creator>IvanBespalov</dc:creator>
      <dc:date>2021-12-11T20:37:52Z</dc:date>
    </item>
  </channel>
</rss>

