BG Development


  Reply to this topicStart new topicStart Poll

> Грешка при определяна на POINT в POLYGON
emagi
Публикувано на: 13-05-2021, 14:07
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 544
Регистриран на: 12.03.07



Здравейте,

опитвам се да направя следното:
CODE

DROP TEMPORARY TABLE IF EXISTS testCoordinates;
CREATE TEMPORARY TABLE IF NOT EXISTS `testCoordinates`
(
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(256) DEFAULT NULL,
 `coordinates` point DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `testCoordinates` ( `name`, `coordinates`)
VALUES ("Plovdiv", POINT(42.139972, 24.747991));

INSERT INTO `testCoordinates` ( `name`, `coordinates`)
VALUES ("Haskowo", POINT(41.952327,25.549993));

INSERT INTO `testCoordinates` ( `name`, `coordinates`)
VALUES ("Bukarest", POINT(44.4293628356067, 26.073647679637986));

SET @coordinate = ST_GEOMFROMTEXT('POLYGON((43.742821,22.986489 43.607738,27.831460 41.438089,27.710611 41.651876,23.074380))');
SELECT name FROM testCoordinates WHERE ST_CONTAINS(@coordinate, coordinates);

Таблица с 3 точки: 2 в България и една в Румъния. Начертавам следния полигон

user posted image

Има следните координати
43.742821,22.986489 43.607738,27.831460 41.438089,27.710611 41.651876,23.074380
Очакването ми бе, след заявката да получа два записа, съответно PLOWDIW и HASKOWO
Някой има ли идея къде греша?
Благодаря предварително
PMEmail Poster
Top
rvc
Публикувано на: 13-05-2021, 19:56
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2569
Регистриран на: 13.05.11



казваш 3 координати, а реално са 4...
PMEmail PosterUsers Website
Top
emagi
Публикувано на: 13-05-2021, 20:14
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 544
Регистриран на: 12.03.07



43.742821,22.986489 43.607738,27.831460 41.438089,27.710611 41.651876,23.074380 са точките на полигона
PMEmail Poster
Top
3p0
Публикувано на: 14-05-2021, 03:39
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 927
Регистриран на: 18.06.05



CODE
#3037 - Invalid GIS data provided to function st_geometryfromtext.


--------------------
MX-19.3 Linux; CPU=Intel® Quad Core i5-2500 1.6-3.7 gHz; MB=Intel model: DQ67SW; Video=GeForce GT 1030; RAM=16giB DDR3-1600 mHz;
Parrot Linux; CPU=Intel® Celeron® G540 2.5gHz; MB=Gigabyte H61M-S2V-B3 rev.1.0; video=AMD RV770 [Radeon HD 4850]; RAM=8giB DDR3-1333 mHz; PSU=Trend Sonic ADK-A500W;
PM
Top
code2
Публикувано на: 14-05-2021, 05:54
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 491
Регистриран на: 11.06.16



Препиши първата точка и като последна (да станат 5 точки представени), за да затвориш полигона! Поне така ги гледам примерите на функцията ST_GeomFromText.

Това мнение е било редактирано от code2 на 14-05-2021, 05:54
PMEmail Poster
Top
emagi
Публикувано на: 14-05-2021, 09:41
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 544
Регистриран на: 12.03.07



QUOTE (code2 @ 14-05-2021, 05:54)
Препиши първата точка и като последна (да станат 5 точки представени), за да затвориш полигона! Поне така ги гледам примерите на функцията ST_GeomFromText.

Благодаря ти. В това е бил проблема
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0