PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Calcul de la distance entre un emplacement GPS et une valeur géographique postgis à l'aide d'une fonction ?

Hasura a intégré la prise en charge de PostGIS dans son schéma GraphQL. Puisque votre champ est déjà de type geography , vous n'avez pas besoin de la fonction.

Dans Hasura, vous devez créer la relation entre les offers et address tables, et la requête GraphQL devrait ressembler à :

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

Le type de géographie dans Hasura s'attend à ce que la valeur soit dans GEOJSON format. Voici comment votre variable $point devrait ressembler à :

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

Le même type de variable (GEOJSON) est attendu lors de l'insertion de valeurs (mutation).