<?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 Display only selected features on map using java script in ArcGIS Server with JavaScript API Questions</title>
    <link>https://community.esri.com/t5/arcgis-server-with-javascript-api-questions/display-only-selected-features-on-map-using-java/m-p/865264#M642</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Good morning everyone,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;I am trying to develop an application using ArcGIS JavaScript API, one of the function is draw a box on map and do the spatial query, then &lt;EM&gt;&lt;STRONG&gt;only the features inside or intersect&amp;nbsp;with the box are display and all the rest feature should disappear.&lt;/STRONG&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;currently I use spatial query from box and get all the feature OIDs and then add definition query like,&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;OBJECTID in (123, 124, 1245, .....2111)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However since our map service point to Oracle database, oracle have limitation on number of values in the list, currently is 1000, so if there are more than 1000&amp;nbsp; values in the list, then definition query won't work, and the entire layer disappear.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone point out other doable strategy to overcome such limitation in Oracle. I appreciate whoever replies.&amp;nbsp;&lt;/P&gt;&lt;P&gt;my current codes something like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function SpatialQuery_Complete(event) {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log("selection count: " + event.features.length);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;window.statusbar.visible = true;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var productionSum = 0;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var defQueryFld = "OBJECTID";&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var definitionQueryWhere = defQueryFld + " IN (";&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(var i = 0; i &amp;lt; event.features.length; i++){&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;window.status= "Processing " + i + " of " + event.features.length;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;definitionQueryWhere = definitionQueryWhere + event.features&lt;I&gt;.attributes.OBJECTID;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (i == (event.features.length - 1) )&lt;BR /&gt; &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;definitionQueryWhere = definitionQueryWhere + ")";&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;BR /&gt; &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;definitionQueryWhere = definitionQueryWhere + ","; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;svcLayer.setLayerDefinitions([null, null,definitionQueryWhere, null, null]);&amp;nbsp; //set layer definition&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;svcLayer.setVisibleLayers([2, 5]);&amp;nbsp; //turn on layer&amp;nbsp;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dave Zhang @GDOT&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 21 Aug 2018 13:53:35 GMT</pubDate>
    <dc:creator>Jun_ChengZhang</dc:creator>
    <dc:date>2018-08-21T13:53:35Z</dc:date>
    <item>
      <title>Display only selected features on map using java script</title>
      <link>https://community.esri.com/t5/arcgis-server-with-javascript-api-questions/display-only-selected-features-on-map-using-java/m-p/865264#M642</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Good morning everyone,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;I am trying to develop an application using ArcGIS JavaScript API, one of the function is draw a box on map and do the spatial query, then &lt;EM&gt;&lt;STRONG&gt;only the features inside or intersect&amp;nbsp;with the box are display and all the rest feature should disappear.&lt;/STRONG&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;currently I use spatial query from box and get all the feature OIDs and then add definition query like,&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;OBJECTID in (123, 124, 1245, .....2111)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However since our map service point to Oracle database, oracle have limitation on number of values in the list, currently is 1000, so if there are more than 1000&amp;nbsp; values in the list, then definition query won't work, and the entire layer disappear.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone point out other doable strategy to overcome such limitation in Oracle. I appreciate whoever replies.&amp;nbsp;&lt;/P&gt;&lt;P&gt;my current codes something like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function SpatialQuery_Complete(event) {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log("selection count: " + event.features.length);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;window.statusbar.visible = true;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var productionSum = 0;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var defQueryFld = "OBJECTID";&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var definitionQueryWhere = defQueryFld + " IN (";&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(var i = 0; i &amp;lt; event.features.length; i++){&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;window.status= "Processing " + i + " of " + event.features.length;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;definitionQueryWhere = definitionQueryWhere + event.features&lt;I&gt;.attributes.OBJECTID;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (i == (event.features.length - 1) )&lt;BR /&gt; &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;definitionQueryWhere = definitionQueryWhere + ")";&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;BR /&gt; &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;definitionQueryWhere = definitionQueryWhere + ","; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;svcLayer.setLayerDefinitions([null, null,definitionQueryWhere, null, null]);&amp;nbsp; //set layer definition&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;svcLayer.setVisibleLayers([2, 5]);&amp;nbsp; //turn on layer&amp;nbsp;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dave Zhang @GDOT&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2018 13:53:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-server-with-javascript-api-questions/display-only-selected-features-on-map-using-java/m-p/865264#M642</guid>
      <dc:creator>Jun_ChengZhang</dc:creator>
      <dc:date>2018-08-21T13:53:35Z</dc:date>
    </item>
    <item>
      <title>Re: Display only selected features on map using java script</title>
      <link>https://community.esri.com/t5/arcgis-server-with-javascript-api-questions/display-only-selected-features-on-map-using-java/m-p/865265#M643</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We use .NET and SQL server on the web map application. Not sure about how&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;Oracle works with ESRI JavaScript. We use query(Intersect) to select feature. The following is the sample code. Our application is more complex and I delete some code so the code below may not run well. You might get some idea on some steps.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function queryGraphic(geometry, count) {&lt;BR /&gt;//step 1: query polygon&lt;BR /&gt;&lt;SPAN&gt;var queryTask1 = new QueryTask("&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2F.....%2FMapServer%2F0" rel="nofollow" target="_blank"&gt;https://...../MapServer/0&lt;/A&gt;&lt;SPAN&gt;");&lt;/SPAN&gt;&lt;BR /&gt;var query1 = new Query();&lt;BR /&gt;query1.returnGeometry = true;&lt;BR /&gt;query1.outFields = ["*"];&lt;BR /&gt;//query1.outFields = ["Id","BuildingName", "BuildingNumber", "EntityName"];&lt;BR /&gt;query1.geometry = geometry;&lt;BR /&gt;query1.spatialRelationship = Query.SPATIAL_REL_INTERSECTS;&lt;BR /&gt;queryTask1.execute(query1);&lt;BR /&gt;//console.log("geometry query1 " + JSON.stringify(geometry));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;queryTask1.on("complete", function (event1) {&lt;BR /&gt;var fset1 = event1.featureSet;&lt;BR /&gt;var queryFeatures = fset1.features;&lt;BR /&gt;var queryGeometrySet = [];&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;var countyFeatureLayer = new FeatureLayer("&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2F.....%2FMapServer%2F1" rel="nofollow" target="_blank"&gt;https://...../MapServer/1&lt;/A&gt;&lt;SPAN&gt;",&lt;/SPAN&gt;&lt;BR /&gt;{ mode: FeatureLayer.MODE_SELECTION, outFields: ["*"], infoTemplate: infoTemplate}); //user draw polygon &lt;BR /&gt;countyFeatureLayer.selectFeatures(query1, FeatureLayer.SELECTION_NEW);&lt;BR /&gt;//console.log("countyFeatureLayer " + countyFeatureLayer);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//step 2: change symbology and add ID to list&lt;BR /&gt;for (var i = 0; i &amp;lt; queryFeatures.length; i++) {&lt;BR /&gt;var graphic1 = queryFeatures&lt;I&gt;;&lt;BR /&gt;if (graphic1.geometry.type == "polygon") { //add feature is polygon&lt;BR /&gt;var querySymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,&lt;BR /&gt;new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,&lt;BR /&gt;new Color([255, 0, 0]), 2), new Color([255, 0, 0, 0.5]));&lt;BR /&gt;} else { //features are points &lt;BR /&gt;var querySymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_SQUARE, 9,&lt;BR /&gt;new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,&lt;BR /&gt;new Color([26, 26, 26]), 1), new Color([26, 163, 255, 0.95])); &lt;BR /&gt;}&lt;/I&gt;&lt;/P&gt;&lt;P&gt;//get Id&lt;BR /&gt;id = graphic1.attributes.Id;&lt;BR /&gt;console.log("point feature id " + id);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;var layerGraphics = new Graphic(graphic1.geometry, querySymbol, infoTemplate);&lt;BR /&gt;map.graphics.add(layerGraphics);&lt;BR /&gt;queryGeometrySet.push(graphic1.geometry);&lt;BR /&gt;console.log("graphic1 " + JSON.stringify(graphic1));&lt;BR /&gt;} &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Aug 2018 14:33:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-server-with-javascript-api-questions/display-only-selected-features-on-map-using-java/m-p/865265#M643</guid>
      <dc:creator>Helenpeng</dc:creator>
      <dc:date>2018-08-22T14:33:03Z</dc:date>
    </item>
    <item>
      <title>Re: Display only selected features on map using java script</title>
      <link>https://community.esri.com/t5/arcgis-server-with-javascript-api-questions/display-only-selected-features-on-map-using-java/m-p/865266#M644</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much, Helen.&lt;/P&gt;&lt;P&gt;We are using JavaScript API, and a bit different from your case, but your approach&amp;nbsp;point me to&amp;nbsp; a very useful&amp;nbsp;way to work with large selection set without limitation, I tried your way in JavaScript, it works, too. appreciate your response.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also find another way to work without using graphics and&amp;nbsp;work around of Oracle limitation. My approach is using "OR" operation in where clause:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;&lt;SPAN style="font-size: 11.0pt;"&gt;whereClasue = “OID in (1, 2, 3, …999) or OID in (1000, 1001, 1002 … 1998) or OID in (1999, 2000, 2001 … 2997)”&lt;/SPAN&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;&lt;SPAN&gt;&amp;nbsp; DynamicLayer.setLayerDefinitions([whereClasue,null, null,&amp;nbsp; null, null]);&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;&lt;BR /&gt; &amp;nbsp;this approach has an extra advantage, that is the map will sync with the legend.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Juncheng Zhang&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Aug 2018 18:43:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-server-with-javascript-api-questions/display-only-selected-features-on-map-using-java/m-p/865266#M644</guid>
      <dc:creator>Jun_ChengZhang</dc:creator>
      <dc:date>2018-08-23T18:43:35Z</dc:date>
    </item>
  </channel>
</rss>

