sql >> Databasteknik >  >> RDS >> PostgreSQL

Beräknar avståndet mellan en gps-plats och postgis geografivärde med hjälp av en funktion?

Hasura har inbyggt stöd för PostGIS i deras GraphQL-schema. Eftersom ditt fält redan är av typen geography , du behöver inte funktionen.

I Hasura måste du skapa relationen mellan offers och address tabeller, och GraphQL-frågan bör vara något i stil med:

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

Geografityp i Hasura förväntar sig att värdet är i GEOJSON formatera. Så här fungerar din variabel $point ska se ut så här:

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

Samma typ av variabel (GEOJSON) förväntas vid infogning av värden (mutation).



  1. PHP MySQL genererar unika slumptal

  2. PHP Tid sedan funktion Bug

  3. SELECT returnerar flera rader som sträng

  4. Grundläggande MySQL-frågor