Hasura zabudovala podporu pro PostGIS ve svém schématu GraphQL. Protože vaše pole je již typu geography
, funkci nepotřebujete.
V Hasura musíte vytvořit vztah mezi offers
a address
tabulky a dotaz GraphQL by měl být něco jako:
query nearby_offers($point: geography!) {
offers(where: {address: {location: {_st_d_within: {distance: 200000, from: $point}}}}) {
id
offer_fields
address {
location
}
}
}
Geografický typ v Hasura očekává, že hodnota bude v GEOJSON
formát. Zde je návod, jak vaše proměnná $point
by měl vypadat takto:
{
"point": {
"type" : "Point",
"coordinates": [longitude, latitude]
}
}
Při vkládání hodnot (mutace) se očekává stejný typ proměnné (GEOJSON).