---
title: "Best cloud geospatial analytics platforms compared"
url: "https://wherobots.com/best-cloud-geospatial-platforms/"
description: "Compare Wherobots Cloud, Snowflake, Databricks and BigQuery on raster and vector data, scale, SQL and Python, pricing and MCP support."
published: "2026-10-15"
modified: "2026-10-15"
---

# Best cloud geospatial analytics platforms compared

Comparison

## Best cloud geospatial analytics platforms compared

Wherobots is the cloud geospatial analytics platform for raster and vector data, built as the AI Context Engine for Physical World Data. See how it compares with Snowflake, Databricks and BigQuery.

[Start for free](https://login.cloud.wherobots.com/sign-up) [Talk to sales](https://wherobots.com/contact/?loc=platforms-compare-hero)

**Raster and vector in one query**

Zonal statistics in spatial SQL.

**Serverless or in your VPC**

Distributed on Apache Spark.

**Built for AI agents**

Wherobots MCP (Model Context Protocol) Server for AI tools.

Cloud data platforms

## Wherobots, Snowflake, Databricks and BigQuery side by side

Each row is a capability a geospatial team tests before it picks a platform. Every answer for Snowflake, Databricks and BigQuery comes from that vendor’s own documentation, linked below the table. For every Wherobots capability and spatial SQL function, see the [Wherobots vs. Apache Sedona feature comparison](https://wherobots.com/apache-sedona/wherobots-vs-apache-sedona/).

| Capability | Spatial compute Wherobots Cloud Fully managed spatial compute, RasterFlow, Havasu catalog, and Spatial AI tools. | Data warehouse Snowflake Cloud data warehouse with geospatial types. | Lakehouse Databricks Lakehouse with native spatial SQL. | Data warehouse Google BigQuery Serverless warehouse with geography functions. |
| --- | --- | --- | --- | --- |
| Raster and vector analysis |  |  |  |  |
| Vector data Geometry and geography types and spatial SQL functions | Included: GEOMETRY and GEOGRAPHY types, 389 spatial SQL functions for vector and raster | Included: GEOGRAPHY and GEOMETRY types, ST\_ and H3 functions | Included: GEOMETRY (generally available, GA) and GEOGRAPHY (Public Preview), 97 ST\_ functions | Included: GEOGRAPHY type on the WGS84 spheroid |
| Raster data A raster type or raster functions in SQL | Included: Out-of-database raster, loading pixels on demand from object storage or a SpatioTemporal Asset Catalog (STAC) | Not included: Not documented | Not included: Not documented | Partial: Earth Engine images and Cloud Optimized GeoTIFFs through ST_REGIONSTATS |
| Raster and vector in one query Statistics of raster pixels inside vector polygons | Included: RS_ZonalStats and RS_ZonalStatsAll in spatial SQL | Not included: Not documented | Not included: Not documented | Included: ST_REGIONSTATS (GA) |
| Imagery inference Computer vision models run over satellite and aerial imagery | Included: RasterFlow (Public Preview), with five built-in models plus your own PyTorch or TensorFlow model | Partial: AI_COMPLETE on image files; no geospatial imagery documented | Not included: Not documented | Partial: ML.ANNOTATE_IMAGE with Cloud Vision; no geospatial imagery documented |
| Scale and operations |  |  |  |  |
| Scale | Distributed and serverless, on Apache Spark | Distributed virtual warehouses | Distributed on Apache Spark and Photon | Distributed and serverless |
| How compute runs | Serverless in Wherobots Cloud, or deployed in your VPC | Managed warehouses you size | Serverless, Pro or Classic SQL warehouses | Serverless, with optional slot reservations |
| SQL and Python | Included: Spatial SQL, Python and Scala | Included: SQL and Snowpark Python | Included: SQL and PySpark | Included: SQL and BigQuery DataFrames |
| Pricing model | Spatial Units per hour; RasterFlow by data processed | Credits per warehouse size and hour | Databricks Units (DBUs) | Per TiB scanned, or capacity per slot-hour |
| Open formats and AI access |  |  |  |  |
| GeoParquet Read and write | Included: Read and write | Not included: Not documented | Not included: Not documented | Included: Load and export |
| Apache Iceberg geometry types Geometry columns in Iceberg tables | Included: Iceberg geometry and geography types with a declared coordinate reference system (CRS) | Included: GEOGRAPHY and GEOMETRY columns in Iceberg tables | Included: GEOMETRY and GEOGRAPHY columns in Iceberg v3 tables | Not included: GEOGRAPHY not supported in BigQuery Iceberg tables |
| MCP server for AI agents An official Model Context Protocol server | Included: Wherobots MCP Server for Claude, Cursor, and VS Code Copilot | Included: Snowflake-managed MCP server (GA) | Included: Genie One MCP (GA) and Databricks SQL MCP (Beta) | Included: BigQuery remote MCP server (GA) |

Sources, checked October 2026: Wherobots Cloud from the [Wherobots vs. Apache Sedona feature comparison](https://wherobots.com/apache-sedona/wherobots-vs-apache-sedona/) and [Wherobots documentation](https://docs.wherobots.com/); Snowflake [geospatial data types](https://docs.snowflake.com/en/sql-reference/data-types-geospatial), [AI_COMPLETE](https://docs.snowflake.com/en/sql-reference/functions/ai_complete-single-file), [Iceberg data types](https://docs.snowflake.com/en/user-guide/tables-iceberg-data-types) and [MCP server](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents-mcp); Databricks [ST geospatial functions](https://docs.databricks.com/aws/en/sql/language-manual/sql-ref-st-geospatial-functions), [SQL warehouse types](https://docs.databricks.com/aws/en/compute/sql-warehouse/warehouse-types), [Iceberg v3](https://docs.databricks.com/aws/en/iceberg/iceberg-v3) and [MCP services](https://docs.databricks.com/aws/en/agents/mcp-tools/built-in-mcp-services); BigQuery [raster data](https://docs.cloud.google.com/bigquery/docs/raster-data), [geospatial data](https://cloud.google.com/bigquery/docs/geospatial-data), [Iceberg tables](https://cloud.google.com/bigquery/docs/biglake-iceberg-tables-in-bigquery), [ML.ANNOTATE_IMAGE](https://cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-annotate-image), [MCP server](https://cloud.google.com/bigquery/docs/use-bigquery-mcp) and [pricing](https://cloud.google.com/bigquery/pricing). “Not documented” means the vendor’s documentation does not describe the capability.

Libraries and databases you run yourself

## Wherobots, ArcGIS GeoAnalytics Engine and PostGIS side by side

The same rows for two tools teams often weigh against a spatial compute platform. Neither is a managed analytics service. GeoAnalytics Engine runs on a Spark cluster you run. PostGIS runs on your own PostgreSQL server or on hosted PostgreSQL such as Amazon RDS. Each answer comes from the vendor’s or project’s own documentation, linked below the table.

| Capability | Spatial compute Wherobots Cloud Fully managed spatial compute, RasterFlow, Havasu catalog, and Spatial AI tools. | Spark library ArcGIS GeoAnalytics Engine Esri spatial analysis on your own Spark clusters. | Database extension PostGIS Open-source spatial extension for PostgreSQL. |
| --- | --- | --- | --- |
| Raster and vector analysis |  |  |  |
| Vector data Geometry types and spatial SQL functions | Included: GEOMETRY and GEOGRAPHY types, 389 spatial SQL functions for vector and raster | Included: 148 ST\_ SQL functions plus analysis tools | Included: geometry and geography types |
| Raster data A raster type or raster functions in SQL | Included: Out-of-database raster, loading pixels on demand from object storage or STAC | Included: Raster type with 30+ raster functions and tools since version 2.0 | Included: raster type in the postgis_raster extension |
| Raster and vector in one query Statistics of raster pixels inside vector polygons | Included: RS_ZonalStats and RS_ZonalStatsAll in spatial SQL | Included: RT_ZonalStatistics | Included: ST_SummaryStats over ST_Clip |
| Imagery inference Computer vision models run over satellite and aerial imagery | Included: RasterFlow (Public Preview), with five built-in models plus your own PyTorch or TensorFlow model | Not included: Not documented | Not included: Not documented |
| Scale and operations |  |  |  |
| Managed service Who runs the compute | Included: Fully managed by Wherobots | Not included: A library you install and license on a Spark cluster you run | You run the database, or rent hosted PostgreSQL such as Amazon RDS and Cloud SQL |
| Scale | Distributed and serverless, on Apache Spark | Distributed on the Spark cluster you run | One PostgreSQL server |
| How compute runs | Serverless in Wherobots Cloud, or deployed in your VPC | On Databricks, Amazon EMR, Azure Synapse or Google Cloud Managed Spark | Self-run, or on managed PostgreSQL such as Amazon RDS and Cloud SQL |
| SQL and Python | Included: Spatial SQL, Python and Scala | Included: Spark SQL, Python and Scala | Included: SQL; Python through drivers such as psycopg |
| Pricing model | Spatial Units per hour; RasterFlow by data processed | Prepaid subscription, connected (core-hours) or disconnected, plus your Spark compute | Free (GPL v2 or later), plus your database server |
| Open formats and AI access |  |  |  |
| GeoParquet Read and write | Included: Read and write | Included: Read and write | Not included: Not documented |
| Apache Iceberg geometry types Geometry columns in Iceberg tables | Included: Iceberg geometry and geography types with a declared CRS | Not included: Not documented | Not included: Not documented |
| MCP server for AI agents An official Model Context Protocol server | Included: Wherobots MCP Server for Claude, Cursor, and VS Code Copilot | Not included: Not documented | Not included: Not documented |

Sources, checked October 2026: Wherobots Cloud from the [Wherobots vs. Apache Sedona feature comparison](https://wherobots.com/apache-sedona/wherobots-vs-apache-sedona/) and [Wherobots documentation](https://docs.wherobots.com/); ArcGIS GeoAnalytics Engine [SQL functions](https://developers.arcgis.com/geoanalytics/sql-functions/), [raster data](https://developers.arcgis.com/geoanalytics/core-concepts/raster-data/), [install](https://developers.arcgis.com/geoanalytics/install/), [GeoParquet](https://developers.arcgis.com/geoanalytics/data/data-sources/geoparquet/) and [licensing](https://developers.arcgis.com/geoanalytics/reference/licensing/); PostGIS [data management](https://postgis.net/docs/using_postgis_dbmanagement.html), [ST_SummaryStats](https://postgis.net/docs/RT_ST_SummaryStats.html) and [license](https://github.com/postgis/postgis/blob/master/LICENSE.TXT); [Amazon RDS PostGIS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.PostGIS.html). “Not documented” means the vendor’s or project’s documentation does not describe the capability.

Customer proof

> We went from babysitting compute jobs for a week to getting results before lunch.

*Steven Yee Founding Staff Engineer, Aarden.ai*

## Computer vision for geospatial data: RasterFlow

### Bring your own data

Query a STAC catalog. Index your own Cloud Optimized GeoTIFFs (COGs) in a GDAL Raster Tile Index, a file that lists each image and its footprint. Then build a mosaic from them with build_gti_mosaics. RasterFlow reads from and writes to your own S3-compatible storage.

[Bring your own rasters](https://docs.wherobots.com/tutorials/example-notebooks/rasterflow-bring-your-own-rasters-naip)

### Mosaicking

RasterFlow builds one seamless, analysis-ready mosaic across an area of interest and a time range. Built-in datasets cover Sentinel-2 with all 12 L2A bands at 10 m, and USDA NAIP aerial imagery at 30 cm and 60 cm, reprojected onto your output grid.

[Build a Sentinel-2 mosaic](https://docs.wherobots.com/tutorials/example-notebooks/rasterflow-s2-mosaic)

### Cloud cover removal

Sentinel-2 mosaics skip scenes with 75% or more cloud cover. They mask cloud, cloud shadow and thin cirrus pixel by pixel from the Scene Classification Layer, then take the per-pixel median of the clear observations.

[See the cloud filtering rules](https://docs.wherobots.com/develop/rasterflow/rasterflow-datasets)

![](https://wherobots.com/wp-content/themes/wherobots/blocks/cards-grid/img/mask.svg)

### Edge effect cleanup

Inference runs over overlapping patches. Patch size and clip size set the overlap, and a merge mode such as weighted average blends neighboring patches. Overlapping windows reduce the edge effects that non-overlapping tiles leave at seams.

[See overlapping inference](https://docs.wherobots.com/tutorials/example-notebooks/rasterflow-changedetection)

### Five built-in models

Meta SAM3 detects objects from a text prompt. Fields of the World maps field boundaries, Tile2Net maps sidewalks and crosswalks, Meta CHM v1 estimates canopy height, and ChesapeakeRSC maps rural roads. Change detection runs a model over two seasons or years in one pass.

[Open the Model Hub](https://cloud.wherobots.com/model-hub)

### Bring your own model

Run your own PyTorch or TensorFlow model. Export a PyTorch model as a PyTorch 2 archive, load it from Amazon S3 or Hugging Face, and run it over any mosaic on GPU runtimes, alongside the built-in models.

[Bring your own model](https://docs.wherobots.com/tutorials/example-notebooks/rasterflow-bring-your-own-model)

### Standard formats after inference

Mosaics and predictions are written as Zarr stores. vectorize_mosaic converts predictions into polygons written as GeoParquet, and Build Multiscales adds overview levels for map viewing. WherobotsDB turns the vectors into PMTiles.

[Visualize RasterFlow outputs](https://docs.wherobots.com/develop/rasterflow/rasterflow-visualization)

### Open interoperability

RasterFlow reads COG, GeoParquet and Parquet, writes Zarr and GeoParquet, and reaches Apache Iceberg tables through a Managed Catalog. WherobotsDB joins the vectorized results with parcels, roads or assets in spatial SQL.

[See supported formats](https://docs.wherobots.com/develop/rasterflow/rasterflow-storage-integration)

### Serverless, priced before you run

No cluster to provision or manage. RasterFlow bills by data processed (pixels × bands × time periods × a complexity factor), so you can calculate a task’s cost before it runs. A 150,000 km² Sentinel-2 mosaic with all 12 bands costs about $13.50 in RasterFlow and about $50 to generate and export in Google Earth Engine.

[Compare with Google Earth Engine](https://wherobots.com/rasterflow-vs-google-earth-engine/)

## RasterFlow results in the platform you already run

### Databricks

Wherobots reads and writes managed Iceberg tables in Databricks Unity Catalog and writes external Delta tables there. Field boundaries, roofs or canopy heights from RasterFlow land as Unity Catalog tables for Databricks ML models and BI dashboards.

[Connect Unity Catalog](https://docs.wherobots.com/get-started/initial-storage/connect-to-unity-catalog)

### Snowflake

Wherobots writes Apache Iceberg tables to your own Amazon S3 bucket. Snowflake supports externally managed Iceberg tables with GEOMETRY and GEOGRAPHY columns, so RasterFlow output can be queried alongside your Snowflake data.

[See Snowflake Iceberg types](https://docs.snowflake.com/en/user-guide/tables-iceberg-data-types)

### Google BigQuery

RasterFlow writes vectorized results as GeoParquet, and BigQuery loads GeoParquet into GEOGRAPHY columns. Predictions then join your BigQuery tables in SQL.

[Load GeoParquet into BigQuery](https://cloud.google.com/bigquery/docs/geospatial-data)

![](https://wherobots.com/wp-content/themes/wherobots/blocks/cards-grid/img/mask.svg)

Function reference

## Every spatial SQL function, by platform

Search 826 spatial SQL functions from each platform’s own function reference, filter by vector or raster, and see which platforms have each one. Functions match by name, so the same operation can appear under two names, such as ST_GeomFromWKT in Wherobots and ST_GEOGRAPHYFROMWKT in Snowflake. Raster functions also carry different prefixes on each platform (RS\_ in Wherobots, RT\_ in GeoAnalytics Engine, ST\_ in PostGIS Raster).

| Function | Category | Wherobots Cloud | Snowflake | Databricks | BigQuery | GeoAnalytics Engine | PostGIS | What it does |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| [ST_Area](https://docs.wherobots.com/reference/wherobots-db/geometry-data/measurement/ST_Area) | Measurement Functions | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/measurement/ST_Area) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_area) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_area) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_area) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_area/) | [Available](https://postgis.net/docs/ST_Area.html) | compute area |
| [ST_AsBinary](https://docs.wherobots.com/reference/wherobots-db/geometry-data/output/ST_AsBinary) | Geometry Output / Export | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/output/ST_AsBinary) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_aswkb) alias of ST_ASWKB | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_asbinary) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_asbinary) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_as_binary/) | [Available](https://postgis.net/docs/ST_AsBinary.html) | output WKB |
| [ST_AsText](https://docs.wherobots.com/reference/wherobots-db/geometry-data/output/ST_AsText) | Geometry Output / Export | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/output/ST_AsText) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_aswkt) alias of ST_ASWKT | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_astext) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_astext) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_as_text/) | [Available](https://postgis.net/docs/ST_AsText.html) | output WKT |
| [ST_Buffer](https://docs.wherobots.com/reference/wherobots-db/geometry-data/processing/ST_Buffer) | Geometry Processing | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/processing/ST_Buffer) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_buffer) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_buffer) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_buffer) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_buffer/) | [Available](https://postgis.net/docs/ST_Buffer.html) | compute buffer geometry; Wherobots also supports spheroidal |
| [ST_Centroid](https://docs.wherobots.com/reference/wherobots-db/geometry-data/processing/ST_Centroid) | Geometry Processing | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/processing/ST_Centroid) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_centroid) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_centroid) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_centroid) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_centroid/) | [Available](https://postgis.net/docs/ST_Centroid.html) | return centroid point |
| [ST_Contains](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Contains) | Predicates / Topological Relationships | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Contains) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_contains) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_contains) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_contains) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_contains/) | [Available](https://postgis.net/docs/ST_Contains.html) | test containment |
| [ST_Difference](https://docs.wherobots.com/reference/wherobots-db/geometry-data/overlay/ST_Difference) | Overlay Functions | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/overlay/ST_Difference) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_difference) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_difference) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_difference) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_difference/) | [Available](https://postgis.net/docs/ST_Difference.html) | compute point-set difference |
| [ST_Dimension](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_Dimension) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_Dimension) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_dimension) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_dimension) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_dimension) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_dimension/) | [Available](https://postgis.net/docs/ST_Dimension.html) | return topological dimension (0=point, 1=line, 2=polygon) |
| [ST_Disjoint](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Disjoint) | Predicates / Topological Relationships | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Disjoint) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_disjoint) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_disjoint) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_disjoint) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_disjoint/) | [Available](https://postgis.net/docs/ST_Disjoint.html) | test disjointness |
| [ST_Distance](https://docs.wherobots.com/reference/wherobots-db/geometry-data/measurement/ST_Distance) | Measurement Functions | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/measurement/ST_Distance) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_distance) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_distance) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_distance) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_distance/) | [Available](https://postgis.net/docs/ST_Distance.html) | compute Euclidean distance |
| [ST_EndPoint](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_EndPoint) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_EndPoint) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_endpoint) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_endpoint) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_endpoint) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_end_point/) | [Available](https://postgis.net/docs/ST_EndPoint.html) | return last point of linestring |
| [ST_Intersection](https://docs.wherobots.com/reference/wherobots-db/geometry-data/overlay/ST_Intersection) | Overlay Functions | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/overlay/ST_Intersection) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_intersection) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_intersection) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_intersection) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_intersection/) | [Available](https://postgis.net/docs/ST_Intersection.html) | compute point-set intersection |
| [ST_Intersects](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Intersects) | Predicates / Topological Relationships | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Intersects) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_intersects) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_intersects) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_intersects) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_intersects/) | [Available](https://postgis.net/docs/ST_Intersects.html) | test intersection |
| [ST_Length](https://docs.wherobots.com/reference/wherobots-db/geometry-data/measurement/ST_Length) | Measurement Functions | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/measurement/ST_Length) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_length) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_length) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_length) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_length/) | [Available](https://postgis.net/docs/ST_Length.html) | return length/perimeter |
| [ST_NumPoints](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_NumPoints) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_NumPoints) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_npoints) alias of ST_NPOINTS | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_numpoints) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_numpoints) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_num_points/) | [Available](https://postgis.net/docs/ST_NumPoints.html) | return number of points |
| [ST_PointN](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_PointN) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_PointN) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_pointn) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_pointn) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_pointn) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_point_n/) | [Available](https://postgis.net/docs/ST_PointN.html) | return Nth point from linestring |
| [ST_StartPoint](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_StartPoint) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_StartPoint) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_startpoint) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_startpoint) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_startpoint) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_start_point/) | [Available](https://postgis.net/docs/ST_StartPoint.html) | return first point of linestring |
| [ST_Union](https://docs.wherobots.com/reference/wherobots-db/geometry-data/overlay/ST_Union) | Overlay Functions | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/overlay/ST_Union) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_union) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_union) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_union) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_union/) | [Available](https://postgis.net/docs/ST_Union.html) | compute point-set union of two geometries |
| [ST_Within](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Within) | Predicates / Topological Relationships | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Within) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_within) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_within) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_within) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_within/) | [Available](https://postgis.net/docs/ST_Within.html) | test if A is within B |
| [ST_X](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_X) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_X) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_x) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_x) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_x) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_x/) | [Available](https://postgis.net/docs/ST_X.html) | return X coordinate of point |
| [ST_Y](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_Y) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_Y) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_y) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_y) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_y) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_y/) | [Available](https://postgis.net/docs/ST_Y.html) | return Y coordinate of point |
| [ST_AsGeoJSON](https://docs.wherobots.com/reference/wherobots-db/geometry-data/output/ST_AsGeoJSON) | Geometry Output / Export | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/output/ST_AsGeoJSON) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_asgeojson) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_asgeojson) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_asgeojson) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_as_geojson/) | [Available](https://postgis.net/docs/ST_AsGeoJSON.html) | output GeoJSON string |
| [ST_Azimuth](https://docs.wherobots.com/reference/wherobots-db/geometry-data/measurement/ST_Azimuth) | Measurement Functions | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/measurement/ST_Azimuth) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_azimuth) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_azimuth) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_azimuth) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_azimuth/) | [Available](https://postgis.net/docs/ST_Azimuth.html) | return azimuth in radians between two points |
| [ST_Boundary](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_Boundary) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_Boundary) | Not available | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_boundary) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_boundary) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_boundary/) | [Available](https://postgis.net/docs/ST_Boundary.html) | return combinatorial boundary |
| [ST_ConvexHull](https://docs.wherobots.com/reference/wherobots-db/geometry-data/processing/ST_ConvexHull) | Geometry Processing | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/processing/ST_ConvexHull) | Not available | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_convexhull) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_convexhull) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_convex_hull/) | [Available](https://postgis.net/docs/ST_ConvexHull.html) | compute convex hull |
| [ST_DWithin](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_DWithin) | Predicates / Topological Relationships | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_DWithin) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_dwithin) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_dwithin) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_dwithin) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_dwithin/) | [Available](https://postgis.net/docs/ST_DWithin.html) | test if within distance |
| [ST_Envelope](https://docs.wherobots.com/reference/wherobots-db/geometry-data/geography/functions/ST_Envelope) | Geography Type Functions | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/geography/functions/ST_Envelope) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_envelope) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_envelope) | Not available | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_envelope/) | [Available](https://postgis.net/docs/ST_Envelope.html) | bounding box for geography type |
| [ST_Equals](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Equals) | Predicates / Topological Relationships | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Equals) | Not available | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_equals) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_equals) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_equals/) | [Available](https://postgis.net/docs/ST_Equals.html) | test geometric equality |
| [ST_ExteriorRing](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_ExteriorRing) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_ExteriorRing) | Not available | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_exteriorring) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_exteriorring) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_exterior_ring/) | [Available](https://postgis.net/docs/ST_ExteriorRing.html) | return exterior ring of polygon |
| [ST_GeometryType](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_GeometryType) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_GeometryType) | Not available | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_geometrytype) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_geometrytype) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_geometry_type/) | [Available](https://postgis.net/docs/ST_GeometryType.html) | return geometry type as string |
| [ST_IsEmpty](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_IsEmpty) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_IsEmpty) | Not available | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_isempty) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_isempty) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_is_empty/) | [Available](https://postgis.net/docs/ST_IsEmpty.html) | test if geometry is empty |
| [ST_MakeLine](https://docs.wherobots.com/reference/wherobots-db/geometry-data/editors/ST_MakeLine) | Geometry Editors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/editors/ST_MakeLine) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_makeline) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_makeline) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_makeline) | Not available | [Available](https://postgis.net/docs/ST_MakeLine.html) | create linestring from points |
| [ST_MakePolygon](https://docs.wherobots.com/reference/wherobots-db/geometry-data/editors/ST_MakePolygon) | Geometry Editors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/editors/ST_MakePolygon) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_makepolygon) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_makepolygon) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_makepolygon) | Not available | [Available](https://postgis.net/docs/ST_MakePolygon.html) | create polygon from shell + optional holes |
| [ST_NumGeometries](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_NumGeometries) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_NumGeometries) | Not available | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_numgeometries) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_numgeometries) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_num_geometries/) | [Available](https://postgis.net/docs/ST_NumGeometries.html) | return number of geometries in collection |
| [ST_Point](https://docs.wherobots.com/reference/wherobots-db/geometry-data/constructors/ST_Point) | Geometry Constructors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/constructors/ST_Point) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_makepoint) alias of ST_MAKEPOINT | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_point) | Not available | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_point/) | [Available](https://postgis.net/docs/ST_Point.html) | create point from X,Y |
| [ST_Simplify](https://docs.wherobots.com/reference/wherobots-db/geometry-data/processing/ST_Simplify) | Geometry Processing | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/processing/ST_Simplify) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_simplify) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_simplify) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_simplify) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_simplify/) | [Available](https://postgis.net/docs/ST_Simplify.html) | use Douglas-Peucker simplification |
| [ST_SRID](https://docs.wherobots.com/reference/wherobots-db/geometry-data/spatial-reference/ST_SRID) | Spatial Reference System | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/spatial-reference/ST_SRID) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_srid) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_srid) | Not available | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_srid/) | [Available](https://postgis.net/docs/ST_SRID.html) | return SRID value |
| [ST_Touches](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Touches) | Predicates / Topological Relationships | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Touches) | Not available | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_touches) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_touches) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_touches/) | [Available](https://postgis.net/docs/ST_Touches.html) | test touch relationship |
| [ST_Transform](https://docs.wherobots.com/reference/wherobots-db/geometry-data/spatial-reference/ST_Transform) | Spatial Reference System | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/spatial-reference/ST_Transform) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_transform) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_transform) | Not available | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_transform/) | [Available](https://postgis.net/docs/ST_Transform.html) | reproject geometry; Wherobots supports source+target CRS |
| [ST_AsEWKB](https://docs.wherobots.com/reference/wherobots-db/geometry-data/output/ST_AsEWKB) | Geometry Output / Export | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/output/ST_AsEWKB) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_asewkb) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_asewkb) | Not available | Not available | [Available](https://postgis.net/docs/ST_AsEWKB.html) | output EWKB (includes SRID) |
| [ST_AsEWKT](https://docs.wherobots.com/reference/wherobots-db/geometry-data/output/ST_AsEWKT) | Geometry Output / Export | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/output/ST_AsEWKT) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_asewkt) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_asewkt) | Not available | Not available | [Available](https://postgis.net/docs/ST_AsEWKT.html) | output EWKT |
| [ST_ClosestPoint](https://docs.wherobots.com/reference/wherobots-db/geometry-data/measurement/ST_ClosestPoint) | Measurement Functions | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/measurement/ST_ClosestPoint) | Not available | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_closestpoint) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_closestpoint) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_closest_point/) | [Available](https://postgis.net/docs/ST_ClosestPoint.html) | return closest point on geom1 to geom2 |
| [ST_Collect](https://docs.wherobots.com/reference/wherobots-db/geometry-data/editors/ST_Collect) | Geometry Editors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/editors/ST_Collect) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_collect) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_collect) | Not available | Not available | [Available](https://postgis.net/docs/ST_Collect.html) | collects into multi-geometry |
| [ST_Covers](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Covers) | Predicates / Topological Relationships | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/predicates/ST_Covers) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_covers) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_covers) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_covers) | Not available | [Available](https://postgis.net/docs/ST_Covers.html) | test if A covers B |
| [ST_GeoHash](https://docs.wherobots.com/reference/wherobots-db/geometry-data/output/ST_GeoHash) | Geometry Output / Export | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/output/ST_GeoHash) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_geohash) | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_geohash) | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_geohash) | Not available | [Available](https://postgis.net/docs/ST_GeoHash.html) | return geohash string |
| [ST_GeometryN](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_GeometryN) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_GeometryN) | Not available | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_geometryn) | Not available | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_geometry_n/) | [Available](https://postgis.net/docs/ST_GeometryN.html) | returns the Nth geometry in a collection |
| [ST_HausdorffDistance](https://docs.wherobots.com/reference/wherobots-db/geometry-data/measurement/ST_HausdorffDistance) | Measurement Functions | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/measurement/ST_HausdorffDistance) | [Available](https://docs.snowflake.com/en/sql-reference/functions/st_hausdorffdistance) | Not available | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_hausdorffdistance) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_hausdorff_distance/) | [Available](https://postgis.net/docs/ST_HausdorffDistance.html) | Hausdorff distance with optional density |
| [ST_InteriorRingN](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_InteriorRingN) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_InteriorRingN) | Not available | [Available](https://docs.databricks.com/aws/en/sql/language-manual/functions/st_interiorringn) | Not available | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_interior_ring_n/) | [Available](https://postgis.net/docs/ST_InteriorRingN.html) | return Nth interior ring of polygon |
| [ST_IsClosed](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_IsClosed) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_IsClosed) | Not available | Not available | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_isclosed) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_is_closed/) | [Available](https://postgis.net/docs/ST_IsClosed.html) | checks if linestring is closed |
| [ST_IsRing](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_IsRing) | Geometry Accessors | [Available](https://docs.wherobots.com/reference/wherobots-db/geometry-data/accessors/ST_IsRing) | Not available | Not available | [Available](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_isring) | [Available](https://developers.arcgis.com/geoanalytics/sql-functions/st_is_ring/) | [Available](https://postgis.net/docs/ST_IsRing.html) | checks if closed and simple |

No functions match these filters.

Check marks link to each platform’s documentation for the function. Sources, checked October 2026: the [Wherobots function reference](https://wherobots.com/apache-sedona/wherobots-vs-apache-sedona/), Snowflake [geospatial functions](https://docs.snowflake.com/en/sql-reference/functions-geospatial), Databricks [ST](https://docs.databricks.com/aws/en/sql/language-manual/sql-ref-st-geospatial-functions) and [H3](https://docs.databricks.com/aws/en/sql/language-manual/sql-ref-h3-geospatial-functions) functions, BigQuery [geography functions](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions), ArcGIS GeoAnalytics Engine 2.1 [SQL](https://developers.arcgis.com/geoanalytics/sql-functions/), [raster](https://developers.arcgis.com/geoanalytics/rt-functions/) and [track](https://developers.arcgis.com/geoanalytics/trk-functions/) functions, and the PostGIS 3.6 [reference](https://postgis.net/docs/reference.html) and [raster reference](https://postgis.net/docs/RT_reference.html) (functions only; operators, version and management functions and the SFCGAL, Topology and Tiger extensions are left out).

## Which platform fits your workload

### Raster plus vector at scale

Wherobots fits teams whose work joins imagery, elevation or climate rasters with buildings, parcels, roads or assets, from one city to the whole planet. WherobotsDB runs zonal statistics and spatial joins in one engine, and RasterFlow turns imagery into features you can join.

### Vector analysis inside your warehouse

Snowflake, Databricks and BigQuery fit teams adding point-in-polygon lookups, distance filters and H3 binning to data already in the warehouse, with no new platform to run.

### Raster statistics on Google Cloud

BigQuery fits teams on Google Cloud that need statistics of Earth Engine rasters inside polygons, through ST_REGIONSTATS.

![](https://wherobots.com/wp-content/themes/wherobots/blocks/cards-grid/img/mask.svg)

### One PostgreSQL database

PostGIS fits applications and analysis that fit on one PostgreSQL server, such as a service that reads and writes features through the day.

### Esri teams on their own Spark

ArcGIS GeoAnalytics Engine fits teams standardized on ArcGIS that already run Spark on Databricks, Amazon EMR, Azure Synapse or Google Cloud.

## Cloud geospatial analytics platform FAQ

### What is a cloud geospatial platform?

A cloud geospatial platform stores and analyzes location data on managed cloud compute. It has spatial types and functions for vector data, such as points, lines and polygons. Many also handle raster data, such as satellite imagery and elevation. See [what geospatial data is](https://wherobots.com/discover/geospatial-data/) and [what a geospatial database is](https://wherobots.com/discover/geospatial-database/).

### Which cloud geospatial database supports both vector and raster analysis?

WherobotsDB has native vector and raster types, so one spatial SQL query can compute raster statistics inside vector polygons. BigQuery does the same for Earth Engine rasters with ST_REGIONSTATS. See [WherobotsDB](https://wherobots.com/products/compute/) and [raster vs. vector data](https://wherobots.com/discover/raster-vs-vector-data/).

### What are the top serverless options for spatial SQL analytics?

Wherobots Cloud runs WherobotsDB serverless, BigQuery is a serverless query service, and Databricks offers serverless SQL warehouses. Of these, Wherobots and BigQuery also query raster data.

### Which cloud geospatial platforms support spatial SQL and Python?

All of the platforms on this page support spatial SQL. Wherobots runs the same spatial functions from SQL, Python and Scala, Databricks through PySpark, Snowflake through Snowpark Python, and BigQuery through BigQuery DataFrames.

### Can RasterFlow results go into Snowflake, Databricks or BigQuery?

Yes. Wherobots writes RasterFlow results to Iceberg tables in Databricks Unity Catalog, to Apache Iceberg tables in your S3 bucket that Snowflake reads, and to GeoParquet that BigQuery loads. Google Earth Engine is the imagery platform RasterFlow compares with most often; see [RasterFlow vs. Google Earth Engine](https://wherobots.com/rasterflow-vs-google-earth-engine/).

### Why do spatial joins get slow on general-purpose platforms?

A spatial join compares geometries by location, so an engine without spatial partitioning compares far more pairs than it needs to. See [what a spatial join is](https://wherobots.com/discover/spatial-join/) and [the partitioning tax](https://wherobots.com/discover/partitioning-tax/).

## Run your raster and vector workload on Wherobots

Bring a query or a dataset and we will run it with you on Wherobots Cloud.

[Schedule use case review](https://wherobots.com/contact/?loc=platforms-compare-cta)

![](https://wherobots.com/wp-content/themes/wherobots/blocks/cta-banner/img/figure.svg)
