Query and QueryTask Not Returning Results ... Error In Syntax?

1028
14
Jump to solution
10-03-2018 10:31 AM
JohnRichardson
New Contributor III
var layerURL = "http://172.20.25.165:6080/arcgis/rest/services/Crime2018/FeatureServer/";            //querys the crimes layer for all burglaries
      var burgresultsLayer = new GraphicsLayer();

            var burgQsym = {                                       //creates the symbol for burglaries query
            type: "simple-marker",
            color: "green",
            style: "triangle",
            size: 8
      };
      /*alert(layerURL);*/
      var qTask = new QueryTask({url : layerURL});
      var burgQuery = new Query();
      burgQuery.returnGeometry = true;
      var fieldBoys = burgQuery.outFields = ["Offense", "Location"];
      /*alert(fieldBoys);*/
      burgQuery.where = "Offense = Burglary";
      qTask.execute(burgQuery).then(function(results) {
            console.log(results.features);
      });
      qTask.executeForCount(burgQuery).then(function(results) {
            console.log(results);
      });
0 Kudos
14 Replies
JohnRichardson
New Contributor III
require([
      "esri/Map",
      "esri/views/MapView",
      //"esri/views/SceneView",
      "esri/widgets/Home",
      "esri/widgets/Search",
      "esri/widgets/BasemapGallery",          //loading the necessary libraries and classes and objects from the ESRI API
      "esri/widgets/Expand",
      "esri/layers/FeatureLayer",
      "esri/layers/ImageryLayer",
      "esri/widgets/LayerList",
      "esri/tasks/QueryTask",
      "esri/tasks/support/Query",
      "esri/layers/GraphicsLayer",
      "dojo/dom",
      "dojo/on",
      "dojo/domReady!"

      ],function(Map, MapView, Home, Search, BasemapGallery, Expand, FeatureLayer, ImageryLayer, LayerList, GraphicsLayer, QueryTask, Query) {

      var map = new Map({     //creates new empy map, with streets as basemap
      basemap: "streets"
      });

      var view = new MapView({      //creates the map view and shows the map in the mapBox container
      container: "mapBox",
      map: map,
      zoom: 13,
      center: [-85.675, 40.09],      //centers map on Anderson, Indiana
      });

      var homewidget = new Home({     //adds the home widget to the map view
      view: view
      });
      view.ui.add(homewidget, "top-left");

      searchWidget = new Search({     //add the search widget to the map view
      view:view,
      showInfoWindowOnSelect: false,
      popupEnabled: false,
      popupOpenOnSelect: false
      });
      view.ui.add(searchWidget, "bottom-right");

      var basemapGallery = new BasemapGallery({     //add the basemap gallery widget to map view
      view: view
      });

      var bgExpand = new Expand({     //puts the basemap gallery widget into an expand widget
      view: view,
      content: basemapGallery,
      collapseTooltip: "Close Basemap Gallery",
      expandTooltip: "Open Basemap Gallery"
      });
      view.ui.add(bgExpand, "bottom-left");

      var burgSym = {                                   //creates the symbol for burglaries
           type: "simple-marker",
           color: "blue",
           style: "diamond",
           size: 7
      };

      var theftSym = {                                   //creates the symbol for thefts
           type: "simple-marker",
           color: "red",
           style: "square",
           size: 7
      };

      var otherSym = {                                   //creates a default symbol
           type: "simple-marker",
           color: "black",
           size: 5,
           style: "circle"
      };

      var crimeRenderer = {                              //creates the renderer for the crimes layer
           type: "unique-value",
           defaultSymbol : otherSym,
           field: "Offense",
           uniqueValueInfos: [{
                value: "Burglary",
                symbol: burgSym
           }, {
                value: "Theft",
                symbol: theftSym
           }]
      };

      var featurelayer = new FeatureLayer({      //adds a feature layer of 2018 Crime
      url: "http://172.20.25.165:6080/arcgis/rest/services/Crime2018/FeatureServer",
      title: "2018 Crime",
      renderer: crimeRenderer,
      visible: false
      });
      map.add(featurelayer, 2);

      var orthLayer = new ImageryLayer({      //adds an image layer of Orthos SCE
      url: "http://172.20.25.165:6080/arcgis/rest/services/Ortho_SCE/ImageServer",
      title: "Ortho - East",
      visible: false
      });
      map.add(orthLayer, 0);

      var orthLayer2 = new ImageryLayer({      //adds an image layer of Orthos SCW
      url: "http://172.20.25.165:6080/arcgis/rest/services/Ortho_SCW/ImageServer",
      title: "Ortho - West",
      visible: false
      });
      map.add(orthLayer2, 1);

      var layerList = new LayerList({     // add a layer list to the map view
      view: view
      });

      var llExpand = new Expand({     //puts the layer list widget into an expand widget
      view: view,
      content: layerList,
      collapseTooltip: "Close Layer List",
      expandTooltip: "Open Layer List"
      });
      view.ui.add(llExpand, "top-right");

      var layerURL = "http://172.20.25.165:6080/arcgis/rest/services/Crime2018/FeatureServer/0";            
      var burgresultsLayer = new GraphicsLayer();

            var burgQsym = {                                       //creates the symbol for burglaries query
            type: "simple-marker",
            color: "green",
            style: "triangle",
            size: 8
      };
      /*alert(layerURL);*/
      var qTask = new QueryTask({url : layerURL});
      var burgQuery = new Query();
      burgQuery.returnGeometry = true;
      burgQuery.outFields = ["Offense", "Location"];
      burgQuery.where = "Offense = 'Burglary'";
      qTask.execute(burgQuery).then(function(results) {                                   //queries the crimes layer for all burglaries (not)
            console.log(results.features);
      });
      qTask.executeForCount(burgQuery).then(function(results) {
            console.log(results);
      });




      });
0 Kudos
RobertScheitlin__GISP
MVP Emeritus

John,

  That is definitely your issue.

require([
      "esri/Map",
      "esri/views/MapView",
      "esri/widgets/Home",
      "esri/widgets/Search",
      "esri/widgets/BasemapGallery",
      "esri/widgets/Expand",
      "esri/layers/FeatureLayer",
      "esri/layers/ImageryLayer",
      "esri/widgets/LayerList",
      "esri/tasks/QueryTask",
      "esri/tasks/support/Query",
      "esri/layers/GraphicsLayer",
      "dojo/dom",
      "dojo/on",
      "dojo/domReady!"

      ],function(
      Map, MapView, Home, Search, BasemapGallery, Expand, FeatureLayer, ImageryLayer,
      LayerList, QueryTask, Query, GraphicsLayer, dom, on) {

Here is your order fixed

JohnRichardson
New Contributor III

Robert .... yes!

Thank you so much!

I guess I did not realize the order of the requires and in the function call were important!

0 Kudos
JohnRichardson
New Contributor III

So the order of the requires has to match the order in the function ... but not the order that they are used in the script itself necessarily?

0 Kudos
RobertScheitlin__GISP
MVP Emeritus

Correct. 

0 Kudos