sql >> Database teknologi >  >> RDS >> Mysql

Søg i en tabel efter punkt i polygon ved hjælp af MySQL

Efter en nats søvn fandt jeg følgende løsning.

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

Det virker for MySQL 5.6.1, hvor ST_ præfiks funktion er blevet implementeret. Selvom jeg ikke har nogen målinger fra en klassisk tilgang (røntgenalgoritme), tror jeg, det er ret hurtigt. Det tager 0,17 sekunder at lokalisere et punkt i 2700 polygoner, hvor nogle polygoner har mere end 1.500 punkter.



  1. Udpak URL'en fra img src med en mysql-forespørgsel

  2. mysql ERSTAT I kun nogle felter

  3. MySQL standarddato() + 14 dage, for en kolonne?

  4. Sådan gemmer du sqlite-database direkte på sdcard