Hasura hat Unterstützung für PostGIS in ihr GraphQL-Schema integriert. Da Ihr Feld bereits vom Typ geography
ist , benötigen Sie die Funktion nicht.
In Hasura müssen Sie die Beziehung zwischen den offers
erstellen und address
Tabellen, und die GraphQL-Abfrage sollte in etwa so aussehen:
query nearby_offers($point: geography!) {
offers(where: {address: {location: {_st_d_within: {distance: 200000, from: $point}}}}) {
id
offer_fields
address {
location
}
}
}
Der geografische Typ in Hasura erwartet, dass der Wert in GEOJSON
ist Format. So funktioniert Ihre Variable $point
sollte so aussehen:
{
"point": {
"type" : "Point",
"coordinates": [longitude, latitude]
}
}
Beim Einfügen von Werten (Mutation) wird derselbe Variablentyp (GEOJSON) erwartet.