PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Obliczanie odległości między lokalizacją GPS a wartością geograficzną Postgis za pomocą funkcji?

Hasura ma wbudowaną obsługę PostGIS w swoim schemacie GraphQL. Ponieważ Twoje pole ma już typ geography , nie potrzebujesz tej funkcji.

W Hasurze musisz stworzyć relację między offers i address tabele, a zapytanie GraphQL powinno wyglądać następująco:

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

Typ geografii w Hasura oczekuje, że wartość będzie w GEOJSON format. Oto jak zmienna $point powinien wyglądać tak:

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

Ten sam typ zmiennej (GEOJSON) jest oczekiwany podczas wstawiania wartości (mutacja).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Psql COPY z ograniczeniem kończy się niepowodzeniem

  2. Czy porządek jest zachowany po UNION w PostgreSQL?

  3. Tworzenie testu rozszerzenia w postgresql

  4. Czy indeksy postgres JSON są wystarczająco wydajne w porównaniu z klasycznymi znormalizowanymi tabelami?

  5. Postgresql — podstawowe tablice i array_agg