2017-01-28 18 views
0

У меня есть игра. Игроки - это точки, а предметы - круги с разными радиусами. Игроки могут добавлять предметы. Игроки также должны видеть Предметы, в которых они находятся.PostGIS - найти круги в точке внутри

  1. Когда предмет добавлен, довольно прямолинейно найти всех игроков в пределах диапазона предмета.

  2. Когда игрок перемещается, как мне найти все предметы, которые они могут видеть?

ответ

0

Я не знаю, почему я был смущен, ответ, конечно:

ST_Within (геометрия A, геометрия B), где А представляет собой круг и B точка.

Поэтому, учитывая окружность с центром в точке с координатами (0, 5) с радиусом 50 и точкой в ​​точке (3, 7), то запрос будет:

ST_Within(
    ST_BUFFER(ST_GeometryFromText('POINT(0 5)'), 50), 
    ST_GeometryFromText('POINT(3 7)')) 
+0

Используйте [ST_DWithin] (HTTP://postgis.net/docs/ST_DWithin.html) вместо ST_Within + ST_Buffer: 'ST_DWithin (ST_GeometryFromText ('POINT (0 5)'), ST_GeometryFromText ('POINT (3 7)'), 50)' –

+0

Отличная точка! – siltalau