Mysql
 sql >> база данни >  >> RDS >> Mysql

Търсете в таблица за точка в многоъгълник с помощта на MySQL

След нощен сън намерих следното решение.

set @p = GeomFromText('POINT(23.923739342824817 38.224714465253733)');
select municipalID FROM ecovis.municipal_border
where ST_Contains(municipal_border.boundary, @p);

Работи за MySQL 5.6.1, където ST_ префикс функцията е внедрена. Въпреки че нямам никакви измервания от класически подход (рентгенов алгоритъм) смятам, че е доста бързо. Необходими са 0,17 секунди, за да се намери точка в 2700 полигона, като някои полигони имат доста повече от 1500 точки.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql подреждане по проблем

  2. Как да добавите динамично текстово поле (ред) и да запишете в база данни с помощта на PHP

  3. PYTHON:Актуализирайте НЯКОЛКО КОЛОНИ с променливи на python

  4. LAST_INSERT_ID() MySQL

  5. Mysql срещу sql експресен сървър (HEX -> bigint и bigint -> HEX преобразуване)