| 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: 12 let
|
|||
0

