Hasura har indbygget understøttelse af PostGIS i deres GraphQL-skema. Da dit felt allerede er af typen geography
, du behøver ikke funktionen.
I Hasura skal du skabe forholdet mellem offers
og address
tabeller, og GraphQL-forespørgslen skulle være noget i stil med:
query nearby_offers($point: geography!) {
offers(where: {address: {location: {_st_d_within: {distance: 200000, from: $point}}}}) {
id
offer_fields
address {
location
}
}
}
Geografitype i Hasura forventer, at værdien er i GEOJSON
format. Sådan er din variabel $point
skal se sådan ud:
{
"point": {
"type" : "Point",
"coordinates": [longitude, latitude]
}
}
Den samme type variabel (GEOJSON) forventes ved indsættelse af værdier (mutation).