Dobbiamo trovare un metodo rapido e abbastanza accurato per il point-in-poligon per valori lat/long e poligoni su google maps. Dopo alcune ricerche - sono imbattuto in alcuni post su MySQL estensioni geometriche, e ha implementare anche questo -Implementazione MySQL dell'algoritmo di ray-casting?
SELECT id, Contains(PolyFromText('POLYGON(".$polygonpath.")') , PointFromText(concat(\"POINT(\", latitude, \" \", longitude, \")\"))) AS
CONTAINS
FROM tbl_points
che non ha però funzionato con poligoni composti da un gran numero di punti :(
Dopo un po 'di più ricerca - si è imbattuto in un algoritmo standard chiamato algoritmo Ray-casting, ma prima di provare a sviluppare una query per questo in MySQL, volevo rischiare se qualcuno lo avesse già fatto o si fosse imbattuto in un link utile che mostra come implementare l'algoritmo in Server MySQL/SQL
Quindi, tagliando breve - la domanda è:
Qualcuno può fornire l'implementazione di algoritmo Ray casting per MySQL/SQL?
dettaglio aggiuntive:
- poligoni sono o concava, convessa o complesso.
- Targeting per un'esecuzione rapida con una precisione del 100%.
Quando ho esaminato le estensioni geospaziali in MySQL circa un anno fa, erano la qualità beta al meglio. Ho finito per usare PostgreSQL per il mio database geografico.Non ho mai sentito di nessuno che provasse a implementare ray casting in un database, comunque ... –
@EricJ. - Grazie per la vostra risposta. Vorrei poter usare postGIS per questo problema .. ma non posso farlo perché è solo una (piccola probabilmente) parte di un enorme sistema. :( – zarun
MySQL ha funzioni cos/sin/tan, ti aiuta? Link: http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html – Johan