I am tryin to piece together a few example and simply trying to query a Rest Endpoint and display those records that are returned.
I am using the scrip below. I get the correct number of results returned but can get them to display.
Any thoughts to why?
<html>
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="initial-scale=1,maximum-scale=1,user-scalable=no"
/>
<title>
Basic Querying in FeatureLayer | Sample | ArcGIS API for JavaScript 4.24
</title>
<link
rel="stylesheet"
href="https://js.arcgis.com/4.24/esri/themes/light/main.css"
/>
<script src="https://js.arcgis.com/4.24/"></script>
<style>
html,
body,
#viewDiv {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
#optionsDiv {
background-color: white;
color: black;
padding: 6px;
max-width: 400px;
}
</style>
<script>
require([
"esri/Map","esri/Graphic","esri/views/MapView","esri/layers/FeatureLayer",
"esri/widgets/Legend","esri/rest/support/Query"
], (Map, Graphic, MapView, FeatureLayer, Legend, Query) => {
const map = new Map({
basemap: "gray-vector"
});
const view = new MapView({
container: "viewDiv",
map: map,
});
layer.load().then(() => {
queryFeatures1();
});
function queryFeatures1() {
var collectionIDvalue1 = '123';
var collectionIDvalue2 = '124';
var collectionIDstring = "CollectionID = " + "'" + collectionIDvalue1 + "'";
const layer = new FeatureLayer({
url: "https://servicesdev.dwr.virginia.gov/arcgis/rest/services/CWSS/AquaDB_Locations/FeatureServer/0"
});
const query = new Query();
query.where = collectionIDstring;
query.returnGeometry = true;
query.outFields = [ "CollectionID", "GlobalID" ];
layer.queryFeatureCount(query)
.then(function(numResults){
alert("There are " + numResults + " return from this query");
});
layer.queryFeatures(query)
.then((results) => {
var countFeatures = results.features.length;
alert("Feature count: " + countFeatures);
displayResults(results);
}).catch((error) => {
console.log(error.error);
});
}
function displayResults(results) {
// Create a blue polygon
const symbol = {
type: "simple-fill",
color: [ 20, 130, 200, 0.5 ],
outline: {
color: "white",
width: .5
},
};
const popupTemplate = {
title: "Locations {OBJECTID}",
content: "ObjectID: {OBJECTID} <br> Collection ID: {CollectionID}"
};
// Assign styles and popup to features
results.features.map((feature) => {
feature.symbol = symbol;
feature.popupTemplate = popupTemplate;
return feature;
});
// Clear display
view.popup.close();
view.graphics.removeAll();
// Add features to graphics layer
view.graphics.addMany(results.features);
}
});
</script>
</head>
<body>
<div id="viewDiv"></div>
</body>
</html>