postgis - использование имени поля в ST_POINT - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь запустить это:

SELECT 
    * 
FROM 
    creator.maps 
WHERE 
    ST_DISTANCE( 
        ST_POINT(10,10)::geography, 
        ST_POINT(geolocation)::geography 
    ) 
    < 50000;

Но выдает ошибку:

HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

Геолокация - это ТОЧКА типа

Как мнеисправить это?

Ошибка:

ERROR:  function st_point(point) does not exist

1 Ответ

0 голосов
/ 11 февраля 2019

Тип point может быть сначала преобразован в PostGIS geometry, затем в geography.

SELECT 
    * 
FROM 
    creator.maps 
WHERE 
    AND ST_DISTANCE( 
          ST_POINT(10,10)::geography, 
          geolocation::geometry::geography 
      ) 
      < 50000;

Обратите внимание, что родные геометрические функции Postgres довольно ограниченыпоэтому вы можете рассмотреть возможность сохранения данных как geometry(point) вместо point

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...