Now in GraphQL Engine: Native support for PostGIS topology operators

23 January, 2019

A lot of the developers in the Hasura GraphQL Engine community use PostGIS, the popular spatial database extension for Postgres, for their apps, and it was only natural for them to expect first-class support for PostGIS topology operators like ST_Contains, ST_Within, ST_DWithin, etc. in Hasura’s GraphQL API. We are very pleased to announce the availability of native support for these operators as boolean GraphQL operators!

Using PostGIS topology operators in GraphQL

Let’s say you want to fetch a list of popular landmarks within a district/borough. In your database schema you have a table called  landmarks (a list of popular locations, with a column of type geometry called location) and you need to search landmarks that are within a polygon (how you may model a district/borough). This is how you can now implement this search in a query using PostGIS’ ST_Within operator as a boolean GraphQL operator in the where argument:

You’ll have to pass the variable as JSON (GeoJSON ) representation of geometry values as shown below:

You can use these operators in subscriptions and mutations too.

List of supported PostGIS topology operators

The following is a list of all supported topology operators:

We are all ears!

We are huge fans of the PostGIS extension and very excited to contribute to the experience for developers using both PostGIS  and GraphQL Engine. We'd love to hear your thoughts on this release - please do try it out and let us know how we can further improve our PostGIS support.

search icon

About Hasura

Hasura allows you to mobilize & federate your organisation’s data by building a powerful, secure & flexible GraphQL API, that can query data in your databases, HTTP services, serverless functions as well as third party APIs.
Like what you read? Join our team! We’re hiring

Hasura

Hasura

The Hasura GraphQL Engine gives you realtime, high performance GraphQL on any Postgres app. Now supports event triggers for use with serverless.

Read More