Использование оператора Select в вызове функции MySQL - PullRequest
2 голосов
/ 26 августа 2011

В следующем вызове хранимой функции MySQL вместо того, чтобы вручную вводить координаты в длинных латах, я бы хотел выбрать полигон из другой таблицы для тестирования.У меня проблемы с правильным синтаксисом.

SELECT IS_POINT_IN_POLYGON(
POINTFROMTEXT( CONCAT( 'POINT(', latitude, ' ', longitude, ')' ) ) , POLYFROMTEXT( 'POLYGON((43.40930419213147, -72.5537109375
43.40884544242924, -72.53695249557495
43.38754804789373, -72.5437331199646
43.378580946950244, -72.58398771286011
43.40930419213147, -72.5537109375 ))' )
)AS result, latitude, longitude
FROM sport
WHERE sport_type = 'lacrosse' AND IS_POINT_IN_POLYGON(
POINTFROMTEXT( CONCAT( 'POINT(', latitude, ' ', longitude, ')' ) ) , POLYFROMTEXT( 'POLYGON((43.40930419213147, -72.5537109375
43.40884544242924, -72.53695249557495
43.38754804789373, -72.5437331199646
43.378580946950244, -72.58398771286011
43.40930419213147, -72.5537109375))' )
) = 1;

Итак, я хотел бы, чтобы удалить 43.40930419213147, -72.5537109375 43.40884544242924, -72.53695249557495 43.38754804789373, -72.5437331199646 43.378580946950244, -72,58398771286011 43,40930419213147, -72,5537109375

1005 * И вместо этого, я хотел бычтобы использовать этот оператор выбора:
SELECT neighborhood_polygon FROM `neighborhood_shapes` WHERE neighborhood="XYZ neighborhood"

У меня есть многоугольники, хранящиеся в окрестности.Его структура выглядит следующим образом:

  • окрестности_индекса smallint (3)
  • окрестности varchar (50)
  • окрестности_полигона (геометрия)

Дополнительная информация:

IS_POINT_IN_POLYGON вызывается следующим образом: IS_POINT_IN_POLYGON (p POINT, poly POLYGON)

Есть предложения?

1 Ответ

0 голосов
/ 26 августа 2011

Попробуйте сделать это.

... POLYFROMTEXT(
    (SELECT neighborhood_polygon 
      FROM neighborhood_shapes 
      Where neighborhood = "XYZ neighborhood") as coords)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...