Geometry vs feature analysis
Client vs server-side
The main difference between geometry and feature analysis is geometry analysis is typically performed on the client-side using ArcGIS APIs and feature analysis is performed on the server-side using ArcGIS APIs that access the spatial analysis service. The other main difference is geometry analysis only evaluates geometries whereas feature analysis can evaluate both geometry and attribute values.
APIs
For geometry analysis, you typically use APIs such as the ArcGIS Maps SDK for JavaScript or ArcGIS Maps SDKs for Native Apps to execute synchronous or asynchronous client-side operations in a client application on a device.
For feature analysis, you use APIs such as the ArcGIS API for Python, ArcGIS REST JS, or the ArcGIS REST API to execute the requests to the service. All transactions are job requests (long transactions) and require multiple transactions to the service to process the job, monitor the status, and then get the results.
Data size
Feature analysis with the spatial analysis service is designed to process large collections of features. The features can be input as feature collections (JSON) or hosted feature layers. Geometry analysis typically involves smaller collections of geometry data that you create from user input or other data sources.
Store results
Another important difference is that you can use feature analysis to persist the results as a hosted feature layer in ArcGIS. This makes it easy to access the data afterward with ArcGIS tools and software. Geometry analysis requires extra steps to create features and store the results in ArcGIS.
Comparison
The table below provides a quick comparison between the two types of analyses:
Type of analysis | Execution mode | Data size | Input data types | Output data types | Analysis type | Store results | Supporting APIs |
---|---|---|---|---|---|---|---|
Geometry analysis | Client-side | Smaller datasets | Geometry | Geometry, Boolean, Number | Geometry | False | * ArcGIS Maps SDK for JavaScriptArcGIS Maps SDKs for Native Apps ArcGIS API for Python |
Feature analysis | Server-side | Larger datasets | Feature collections or hosted feature layers | Feature collection or hosted feature layer | Geometry and attributes | True | * ArcGIS Maps SDK for JavaScriptArcGIS REST JS ArcGIS API for Python ArcGIS REST API |
*
See API support for more information.
Tutorials

Find data sources
Discover data in ArcGIS that you can use for feature analysis.

Create data sources
Import, create, and generate data for feature analysis.

Enrich data sources
Enrich data with demographic information and local business facts using the spatial analysis service.

Find and extract data
Find data with attribute and spatial queries using find analysis operations.

Combine data
Overlay, join, and dissolve features using combine analysis operations.

Summarize data
Aggregate and summarize features using summarize analysis operations.

Discover patterns in data
Find patterns and trends in data using spatial analysis operations.
Services
Spatial analysis service
Process spatial datasets to discover relationships and patterns.
API support
Geometry analysis
Spatial relationship | Geometric calculation | Length and area | Projection | |
---|---|---|---|---|
ArcGIS Maps SDK for JavaScript | ||||
ArcGIS Maps SDK for .NET | ||||
ArcGIS Maps SDK for Kotlin | ||||
ArcGIS Maps SDK for Swift | ||||
ArcGIS Maps SDK for Java | ||||
ArcGIS Maps SDK for Qt | ||||
ArcGIS API for Python | ||||
ArcGIS REST JS | ||||
Esri Leaflet | ||||
MapBox GL JS | ||||
OpenLayers |
Feature analysis
Find data | Combine data | Summarize data | Analyze patterns | Calculate geometries | |
---|---|---|---|---|---|
ArcGIS Maps SDK for JavaScript | 1 | 1 | 1 | 1 | 1 |
ArcGIS Maps SDK for .NET | |||||
ArcGIS Maps SDK for Kotlin | |||||
ArcGIS Maps SDK for Swift | |||||
ArcGIS Maps SDK for Java | |||||
ArcGIS Maps SDK for Qt | |||||
ArcGIS API for Python | |||||
ArcGIS REST JS | 1 | 1 | 1 | 1 | 1 |
Esri Leaflet | 2 | 2 | 2 | 2 | 1 |
MapBox GL JS | 2 | 2 | 2 | 2 | 1 |
OpenLayers | 2 | 2 | 2 | 2 | 1 |
- 1. Access with geoprocessing task
- 2. Access via ArcGIS REST JS