Hello!
I have a QueryTask script and it only works the first time in a given browser or computer (it worked once in Firefox, Chrome and IE on work computer, and once in Firefox on my home computer). Now, whenever I refresh or access the page again the results don't show. I don't have this problem if I return the results as text; I can refresh as many times as I want and it works fine. Yep, I've restarted and cleared caches! It's my first time trying to build a web map with querying functionality so I might be missing something really obvious... Please let me know if I need to explain something better, too! Thanks a bunch!
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" > <title>CRM Project Creator</title> <!--<link rel="stylesheet" type="text/css" href="style.css">--> <link rel="stylesheet" href="http://js.arcgis.com/3.9/js/esri/css/esri.css"> <script src="http://js.arcgis.com/3.9/"></script> <script> var map; var symbol; require([ "esri/map", "esri/layers/ArcGISDynamicMapServiceLayer", "esri/tasks/query", "esri/tasks/QueryTask", "esri/symbols/SimpleFillSymbol", "esri/symbols/SimpleLineSymbol", "esri/Color", "dojo/domReady!" ], function ( Map, ArcGISDynamicMapServiceLayer, Query, QueryTask, SimpleFillSymbol, SimpleLineSymbol, Color) { map = new Map("map", { basemap: "streets", center: [-122.86, 49.1], zoom: 10 }); // query code var query = new Query(); var queryTask = new QueryTask("http://[redacted]/MapServer/50"); query.where = "Project_Number LIKE '%00%'"; query.returnGeometry = true; query.outFields = ["*"]; //query.outSpatialReference = new esri.SpatialReference({wkid : 4326}); queryTask.execute(query, showResults); symbol = new SimpleFillSymbol(); symbol.setStyle(SimpleFillSymbol.STYLE_SOLID); symbol.setColor(new Color([255,0,255,1])); function showResults(results) { map.graphics.clear(); var resultFeatures = results.features; for (i=0, il=resultFeatures.length; i<il; i++) { var graphic = resultFeatures; graphic.setSymbol(symbol); map.graphics.add(graphic); } // set the extents of the query results var extent = esri.graphicsExtent(results.features); map.setExtent(extent.expand(1.5),true); } }); </script> </head> <body> <div id="map" style="width:1280px;height:860px"></div> </body> </html>
Solved! Go to Solution.
Jenn,
Changing very little beside the map service and where clause and a little styling. Your code works for me every time.
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" > <title>CRM Project Creator</title> <!--<link rel="stylesheet" type="text/css" href="style.css">--> <link rel="stylesheet" href="http://js.arcgis.com/3.9/js/esri/css/esri.css"> <script src="http://js.arcgis.com/3.9/"></script> <style> html, body, #map { height: 100%; width: 100%; margin: 0; padding: 0; } </style> <script> var map; var symbol; require([ "esri/map", "esri/layers/ArcGISDynamicMapServiceLayer", "esri/tasks/query", "esri/tasks/QueryTask", "esri/symbols/SimpleFillSymbol", "esri/symbols/SimpleLineSymbol", "esri/Color", "dojo/domReady!" ], function ( Map, ArcGISDynamicMapServiceLayer, Query, QueryTask, SimpleFillSymbol, SimpleLineSymbol, Color) { map = new Map("map", { basemap: "streets", center: [-122.86, 49.1], zoom: 10 }); // query code var query = new Query(); var queryTask = new QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Louisville/LOJIC_LandRecords_Louisville/M..."); query.where = "ZONING_TYPE LIKE 'COMMERCIAL%'"; query.returnGeometry = true; query.outFields = ["*"]; //query.outSpatialReference = new esri.SpatialReference({wkid : 4326}); queryTask.execute(query, showResults); symbol = new SimpleFillSymbol(); symbol.setStyle(SimpleFillSymbol.STYLE_SOLID); symbol.setColor(new Color([255,0,255,1])); function showResults(results) { map.graphics.clear(); var resultFeatures = results.features; for (i=0, il=resultFeatures.length; i<il; i++) { var graphic = resultFeatures; graphic.setSymbol(symbol); map.graphics.add(graphic); } // set the extents of the query results var extent = esri.graphicsExtent(results.features); map.setExtent(extent.expand(1.5),true); } }); </script> </head> <body> <div id="map"></div> </body> </html>
Jenn,
Changing very little beside the map service and where clause and a little styling. Your code works for me every time.
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" > <title>CRM Project Creator</title> <!--<link rel="stylesheet" type="text/css" href="style.css">--> <link rel="stylesheet" href="http://js.arcgis.com/3.9/js/esri/css/esri.css"> <script src="http://js.arcgis.com/3.9/"></script> <style> html, body, #map { height: 100%; width: 100%; margin: 0; padding: 0; } </style> <script> var map; var symbol; require([ "esri/map", "esri/layers/ArcGISDynamicMapServiceLayer", "esri/tasks/query", "esri/tasks/QueryTask", "esri/symbols/SimpleFillSymbol", "esri/symbols/SimpleLineSymbol", "esri/Color", "dojo/domReady!" ], function ( Map, ArcGISDynamicMapServiceLayer, Query, QueryTask, SimpleFillSymbol, SimpleLineSymbol, Color) { map = new Map("map", { basemap: "streets", center: [-122.86, 49.1], zoom: 10 }); // query code var query = new Query(); var queryTask = new QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Louisville/LOJIC_LandRecords_Louisville/M..."); query.where = "ZONING_TYPE LIKE 'COMMERCIAL%'"; query.returnGeometry = true; query.outFields = ["*"]; //query.outSpatialReference = new esri.SpatialReference({wkid : 4326}); queryTask.execute(query, showResults); symbol = new SimpleFillSymbol(); symbol.setStyle(SimpleFillSymbol.STYLE_SOLID); symbol.setColor(new Color([255,0,255,1])); function showResults(results) { map.graphics.clear(); var resultFeatures = results.features; for (i=0, il=resultFeatures.length; i<il; i++) { var graphic = resultFeatures; graphic.setSymbol(symbol); map.graphics.add(graphic); } // set the extents of the query results var extent = esri.graphicsExtent(results.features); map.setExtent(extent.expand(1.5),true); } }); </script> </head> <body> <div id="map"></div> </body> </html>
Robert,
First of all, thank you so much for taking time to do this! Your help is definitely appreciated.
Secondly, this is very curious. I was able to refresh as many times as I wanted in whichever browsers I so desired and you're right - the code works. I think the next step is to start looking at server logs as this says to me it's not a coding issue.
However, for anyone else reading this, if you have any knowledge to impart I'd be very grateful!
Thanks again, Robert. Have a great day!