PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Calculando a distância entre uma localização gps e o valor geográfico do postgis usando uma função?


Hasura construiu suporte para PostGIS em seu esquema GraphQL. Como seu campo já é do tipo geography , você não precisa da função.

No Hasura você precisa criar o relacionamento entre as offers e address tabelas e a consulta do GraphQL deve ser algo como:
query nearby_offers($point: geography!) {
  offers(where: {address: {location: {_st_d_within: {distance: 200000, from: $point}}}}) {
    id
    offer_fields
    address {
      location
    }
  }
}

O tipo de geografia no Hasura espera que o valor esteja em GEOJSON formato. Aqui está como sua variável $point deve se parecer com:
{
  "point": {
    "type" : "Point", 
    "coordinates": [longitude, latitude]
  }
}

O mesmo tipo de variável (GEOJSON) é esperado ao inserir valores (mutação).