Hasura е вградила поддръжка за PostGIS в тяхната схема GraphQL. Тъй като вашето поле вече е от тип geography
, нямате нужда от функцията.
В Hasura трябва да създадете връзката между offers
и address
таблици, а заявката на GraphQL трябва да бъде нещо като:
query nearby_offers($point: geography!) {
offers(where: {address: {location: {_st_d_within: {distance: 200000, from: $point}}}}) {
id
offer_fields
address {
location
}
}
}
Географският тип в Hasura очаква стойността да бъде в GEOJSON
формат. Ето как вашата променлива $point
трябва да изглежда така:
{
"point": {
"type" : "Point",
"coordinates": [longitude, latitude]
}
}
Същият тип променлива (GEOJSON) се очаква при вмъкване на стойности (мутация).