Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyszukaj w tabeli Point in Polygon za pomocą MySQL

Po nocnym śnie znalazłem następujące rozwiązanie.

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

Działa dla MySQL 5.6.1, gdzie przedrostek ST_ funkcja została zaimplementowana.Chociaż nie mam żadnych pomiarów z klasycznego podejścia (algorytm rentgenowski) uważam, że jest to dość szybkie. Potrzeba 0,17 sekundy, aby zlokalizować punkt w 2700 wielokątach, przy czym niektóre wielokąty mają znacznie więcej niż 1500 punktów.



  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:WYBIERZ sumę wartości pól, a jednocześnie WYBIERZ unikalne wartości?

  2. Jak zwiększyć długość ciągu w mysql podczas mapowania za pomocą JPA?

  3. MySQL a JSON — dlaczego?

  4. Nie można wybrać, gdzie ip=inet_pton($ip)

  5. Zwiększenie automatycznego przyrostu mySQL o 10 (ClearDB i Node)