sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Calcular la distancia entre una ubicación gps y el valor geográfico postgis usando una función?

Hasura ha incorporado soporte para PostGIS en su esquema GraphQL. Dado que su campo ya es de tipo geography , no necesita la función.

En Hasura necesitas crear la relación entre las offers y address tablas, y la consulta de GraphQL debería ser algo como:

query nearby_offers($point: geography!) {
  offers(where: {address: {location: {_st_d_within: {distance: 200000, from: $point}}}}) {
    id
    offer_fields
    address {
      location
    }
  }
}

El tipo de geografía en Hasura espera que el valor esté en GEOJSON formato. Así es como su variable $point debería verse como:

{
  "point": {
    "type" : "Point", 
    "coordinates": [longitude, latitude]
  }
}

Se espera el mismo tipo de variable (GEOJSON) al insertar valores (mutación).