Autor | Zpráva | ||
---|---|---|---|
David Klouček Profil |
#1 · Zasláno: 21. 6. 2014, 21:29:49
Mám v DB uložené záznamy a u každého souřadnice místa. Potom si určím oblast a v ní se je snažím najít, ale nenajde to nic. Tak jsem si našel funkční příklad se státem Colorado a přidal tam i ČR.
CREATE TABLE IF NOT EXISTS `stuff` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `lat` decimal(12,7) NOT NULL, `lon` decimal(12,7) NOT NULL, `location` point NOT NULL, primary key(id) ) ENGINE=innodb DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- první záznam je nějaký bod v USA, druhý praha INSERT INTO `stuff` (`lat`, `lon`, `location`) VALUES (40.2488450, -103.8003460, GeomFromText('POINT(40.248845 -103.800346)')), (50.084292, 14.3903, GeomFromText('POINT(50.084292 14.3903)')); -- tady se hledá v oblasti v USA - funguje SELECT *, AsText(location) FROM stuff WHERE Contains(GeomFromText('POLYGON(( 41.000497 -109.050149, 41.002380 -102.051881, 36.993237 -102.041959, 36.999037 -101.045220, 41.000497 -109.050149 ))'), location ); -- tady v ČR - nevrátí nic SELECT *, AsText(location) FROM stuff WHERE Contains(GeomFromText('POLYGON(( 50.835801 12.019306, 50.585351 17.666278, 48.859678 18.017840, 49.119209 11.612812, 50.835801 12.019306 )'), location); Je záhadou proč to nejde. Polygon je snad správně, pro Colorado vypadá takhle: A pro ČR: Živá ukázka: http://sqlfiddle.com/#!2/1624a8/1 |
||
_es Profil |
#2 · Zasláno: 21. 6. 2014, 22:19:19
David Klouček [#1]:
Nejako ti tam nesedia zátvorky. |
||
David Klouček Profil |
#3 · Zasláno: 21. 6. 2014, 22:24:08
Jo dík, už to jde. Zvláštní, jak člověk vždycky marně hledá chybu v největší kravině.
|
||
Časová prodleva: 10 let
|
0