Точка в пределах многоугольника, используя pointfromtext и геометрию o multipolgon - PullRequest
0 голосов
/ 02 апреля 2019

Я хочу определить, в какой точке находится какой полигон.Я использую базу данных MySQL.Точка взята из текста, а мультиполигон находится в столбце Shape как geometry.i использую следующий запрос.

SELECT ap.ac_name
FROM andrapradesh ap
WHERE ST_Contains(PointFromText('POINT(16.504181 78.161779)'), ap.SHAPE)=1;

Ответы [ 3 ]

0 голосов
/ 02 апреля 2019

Да, я получил вывод. Что я сделал, так это то, что я общаюсь в чате и долго.

SELECT ap.ac_name 
FROM andrapradesh ap 
WHERE ST_Within(PointFromText('POINT(78.161779 16.504181)'),ap.SHAPE);
0 голосов
/ 05 апреля 2019
ST_Intersection(g1, g2)

Возвращает геометрию, которая представляет пересечение набора точек значений геометрии g1 и g2.Если какой-либо аргумент равен NULL, возвращаемое значение равно NULL.

mysql> SET @g1 = ST_GeomFromText('LineString(1 1, 3 3)');
mysql> SET @g2 = ST_GeomFromText('LineString(1 3, 3 1)');
mysql> SELECT ST_AsText(ST_Intersection(@g1, @g2));

+--------------------------------------+
| ST_AsText(ST_Intersection(@g1, @g2)) |
+--------------------------------------+
| POINT(2 2)                           |
+--------------------------------------+
0 голосов
/ 02 апреля 2019

Если вы хотите использовать ST_Contains () Вы должны использовать

SELECT ap.ac_name 
FROM andrapradesh ap
WHERE ST_Contains(ap.SHAPE, PointFromText('POINT(16.504181 78.161779)');

ST_Contains (g1, g2)

Возвращает 1 или 0, чтобы указать, содержит ли g1 полностью g2.Это проверяет противоположное отношение как ST_Within ().

Если вы хотите использовать содержащийся элемент в качестве первого параметра, вам нужно ST_Within

SELECT ap.ac_name 
FROM andrapradesh ap 
WHERE ST_Within(PointFromText('POINT(16.504181 78.161779)'),ap.SHAPE);

ST_Within (g1, g2)

Возвращает 1 или 0, чтобы указать, находится ли g1 пространственно в пределах g2.Это проверяет противоположное отношение как ST_Contains ().

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