Hasura har inbyggt stöd för PostGIS i deras GraphQL-schema. Eftersom ditt fält redan är av typen geography
, du behöver inte funktionen.
I Hasura måste du skapa relationen mellan offers
och address
tabeller, och GraphQL-frågan bör vara något i stil med:
query nearby_offers($point: geography!) {
offers(where: {address: {location: {_st_d_within: {distance: 200000, from: $point}}}}) {
id
offer_fields
address {
location
}
}
}
Geografityp i Hasura förväntar sig att värdet är i GEOJSON
formatera. Så här fungerar din variabel $point
ska se ut så här:
{
"point": {
"type" : "Point",
"coordinates": [longitude, latitude]
}
}
Samma typ av variabel (GEOJSON) förväntas vid infogning av värden (mutation).