sql >> Database >  >> RDS >> PostgreSQL

Afstand berekenen tussen een gps-locatie en postgis geografische waarde met behulp van een functie?

Hasura heeft ondersteuning voor PostGIS ingebouwd in hun GraphQL-schema. Aangezien uw veld al van het type geography is, , je hebt de functie niet nodig.

In Hasura moet je de relatie maken tussen de offers en address tabellen, en de GraphQL-query zou zoiets moeten zijn als:

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

Geografietype in Hasura verwacht dat de waarde in GEOJSON staat formaat. Hier ziet u hoe uw variabele $point zou er als volgt uit moeten zien:

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

Hetzelfde type variabele (GEOJSON) wordt verwacht bij het invoegen van waarden (mutatie).



  1. Grote hoeveelheden oude gegevens archiveren in SQL Server

  2. Postgres geneste JSONB-kolom afvlakken

  3. Hibernate CriteriaBuilder om meerdere tabellen samen te voegen

  4. Spring Boot MySQL-database initialisatiefout met opgeslagen procedures