QueryTask results not loading after refresh

1251
2
Jump to solution
11-25-2014 12:35 PM
JennB
by
New Contributor III

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>
0 Kudos
1 Solution

Accepted Solutions
RobertScheitlin__GISP
MVP Emeritus

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>

View solution in original post

0 Kudos
2 Replies
RobertScheitlin__GISP
MVP Emeritus

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>
0 Kudos
JennB
by
New Contributor III

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!

0 Kudos