Hasura đã xây dựng hỗ trợ cho PostGIS trong lược đồ GraphQL của họ. Vì trường của bạn đã thuộc loại geography
, bạn không cần hàm.
Trong Hasura, bạn cần tạo mối quan hệ giữa offers
và address
và truy vấn GraphQL phải giống như sau:
query nearby_offers($point: geography!) {
offers(where: {address: {location: {_st_d_within: {distance: 200000, from: $point}}}}) {
id
offer_fields
address {
location
}
}
}
Loại địa lý trong Hasura hy vọng giá trị nằm trong GEOJSON
định dạng. Đây là cách biến $point
của bạn sẽ giống như sau:
{
"point": {
"type" : "Point",
"coordinates": [longitude, latitude]
}
}
Cùng một loại biến (GEOJSON) được mong đợi khi chèn giá trị (đột biến).