You can perform a SQL or spatial query to access a subset of the data in a feature service. The results of the query can contain the attributes, geometry, or both attributes and geometry, for each matching record. These results can be used for further processing or can be displayed in an application.
How to query a feature service
There is no direct integration with MapLibre to construct a SQL or spatial query against a hosted feature service. To access the feature service in your application, you use the feature-service
and request
modules from ArcGIS REST JS. The feature-service
module allows you to query and edit features in a feature layer.
- Reference the MapLibre CSS and JS libraries.
- Find the URL of the service against which you want to query.
- Reference the
feature-service
andrequest
modules from ArcGIS REST JS. - Call the
query
operation.Features - Set the service URL and the feature layer ID.
- Define the SQL or spatial query.
Example
Query a feature layer (spatial)
In this example, you perform a spatial query using the ArcGIS REST JS request
and feature-service
modules to find which parcels intersect a geometry. Available spatial relationships include: within, contains, intersects, and overlaps.
<script src="https://unpkg.com/@esri/arcgis-rest-request@4/dist/bundled/request.umd.js"></script>
<script src="https://unpkg.com/@esri/arcgis-rest-feature-service@4/dist/bundled/feature-service.umd.js"></script>
<script>
arcgisRest
.queryFeatures({
url: "https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/LA_County_Parcels/FeatureServer/0",
geometry: queryGeometry,
geometryType: "esriGeometryPoint",
spatialRel: "esriSpatialRelIntersects",
authentication
})
.then((response) => {
console.log(response.features);
document.getElementById("result").textContent = JSON.stringify(response.features, null, 2);
});
</script>