sql >> Base de Datos >  >> RDS >> Mysql

Buscar una tabla para Point in Polygon usando MySQL

Después de una noche de sueño, encontré la siguiente solución.

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

Funciona para MySQL 5.6.1 donde Prefijo ST_ Se ha implementado la función. Aunque no tengo ninguna medición desde un enfoque clásico (algoritmo de rayos X), creo que es bastante rápido. Necesita 0,17 segundos para ubicar un punto en 2700 polígonos y algunos polígonos tienen más de 1500 puntos.