Autor | Zpráva | ||
---|---|---|---|
swetko Profil |
#1 · Zasláno: 20. 6. 2022, 23:58:20
Ahojte.
Mám v databáze objekty - každý má hodnotu minX, minY, maxX, maxY. Akým dotazom vyberiem tie objekty ktoré sú celé, alebo len z časti v zvolenej oblasti MIN-X,MIN-Y a MAX-X,MAX-Y? Prikladám obrázok pre názornosť. ![]() |
||
blaaablaaa Profil |
#2 · Zasláno: 21. 6. 2022, 00:26:53
swetko:
Celé budou ty, které mají hodnotu X1min a X1max někde mezi Xmin a Xmax a zároveň Ymin a Ymax mezi Ymin a Ymax. Částečné jen ty, které mají v tom rozmezí jen jeden z bodů. Případně lze použít GIS funkce, pokud je db umí. |
||
tttttttt Profil * |
#3 · Zasláno: 21. 6. 2022, 00:42:10
blaaablaaa:
Modrý objekt nemá v rozmezí žádný z rohových bodů a přitom je částečně uvnitř. |
||
blaaablaaa Profil |
#4 · Zasláno: 21. 6. 2022, 03:19:55
tttttttt:
Tak pak jeste pocitat kombinace Xmax Ymin a Xmin Ymax ... nebo pouzit k tomu urcene funkce (ST_Contains a ST_Crosses), pokud jsou k dispozici. |
||
swetko Profil |
#5 · Zasláno: 21. 6. 2022, 06:20:11
tttttttt:
Dokonca veľký žltý nemá x,y min,max ani v intervale. blaaablaaa Diky za typ na gis funkcie, pozriem to. |
||
Kajman Profil |
#6 · Zasláno: 21. 6. 2022, 07:32:23
Stačí jednoduše
where object_Xmin<=interval_Xmax and object_Xmax>=interval_Xmin and object_Ymin<=interval_Ymax and object_Ymax>=interval_Ymin Ale se spatial indexy by to mělo být rychlejší. |
||
swetko Profil |
#7 · Zasláno: 21. 6. 2022, 18:28:12
Kajman:
Toto vyberie len objekty ktoré sú cele vnútri. |
||
Kajman Profil |
#8 · Zasláno: 21. 6. 2022, 19:05:00
Kdepak. Neopsal jste to špatně?
Podívejte se na obrázek: všechny Xmin objektů jsou menší než Xmax hranice (zelený puntík je před pravou svislou čárou) všechny Xmax objektů jsou větší než Xmin hranice (modrý puntík je vpravo od levé svislé čáry) všechny Ymin objektů jsou menší než Ymax hranice (zelený puntík je nad spodní vodorovnou čárou) všechny Ymax objektů jsou větší než Ymin hranice (modrý puntík je pod horní vodorovnou čárou) Mělo by to tedy vybrat všechny objekty z obrázku, ne jen hnědý. |
||
swetko Profil |
Kajman:
AND neznamená že sa musia splniť všetky podmienky? Lebo ja to chápem tak, že tie podmienky spolu vytvoria štvorec vnútri intervalu. |
||
Kajman Profil |
#10 · Zasláno: 21. 6. 2022, 19:51:42
Ano AND znamená, že musí být splněny všechny. Ty podmínky nedělají čtverec. Nekontrolují totiž stejný bod, ale křížem max a min pozici, tam je možná problém v chápání.
Dokážete najít na obrázku čtverec, pro který nejsou splněny všechny 4 podmínky? |
||
swetko Profil |
#11 · Zasláno: 22. 6. 2022, 00:15:10
Kajman:
Veru nedokážem, no aj tak mi to vo výsledku nerobí doma to čo by malo. Musím sa ešte pozrieť na dáta. |
||
Kajman Profil |
#12 · Zasláno: 22. 6. 2022, 01:06:01
Zkontrolujte si, zda je u objektů vždy min menší než max.
|
||
Časová prodleva: 3 roky
|
0