Hasura a intégré la prise en charge de PostGIS dans son schéma GraphQL. Puisque votre champ est déjà de type geography
, vous n'avez pas besoin de la fonction.
Dans Hasura, vous devez créer la relation entre les offers
et address
tables, et la requête GraphQL devrait ressembler à :
query nearby_offers($point: geography!) {
offers(where: {address: {location: {_st_d_within: {distance: 200000, from: $point}}}}) {
id
offer_fields
address {
location
}
}
}
Le type de géographie dans Hasura s'attend à ce que la valeur soit dans GEOJSON
format. Voici comment votre variable $point
devrait ressembler à :
{
"point": {
"type" : "Point",
"coordinates": [longitude, latitude]
}
}
Le même type de variable (GEOJSON) est attendu lors de l'insertion de valeurs (mutation).