Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Pesquisar uma tabela para Point in Polygon usando MySQL


Depois de uma noite de sono, encontrei a seguinte solução.
set @p = GeomFromText('POINT(23.923739342824817 38.224714465253733)');
select municipalID FROM ecovis.municipal_border
where ST_Contains(municipal_border.boundary, @p);

Está funcionando para o MySQL 5.6.1 onde Prefixo ST_ foram implementadas.Embora eu não tenha nenhuma medida de uma abordagem clássica (algoritmo de raio-x), acredito que seja bastante rápido. Ele precisa de 0,17 segundos para localizar um ponto em 2.700 polígonos, com alguns polígonos com mais de 1.500 pontos.