Autor Zpráva
swetko
Profil
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
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 *
blaaablaaa:
Modrý objekt nemá v rozmezí žádný z rohových bodů a přitom je částečně uvnitř.
blaaablaaa
Profil
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
tttttttt:
Dokonca veľký žltý nemá x,y min,max ani v intervale.

blaaablaaa
Diky za typ na gis funkcie, pozriem to.
Kajman
Profil
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
Kajman:
Toto vyberie len objekty ktoré sú cele vnútri.
Kajman
Profil
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
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
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
Zkontrolujte si, zda je u objektů vždy min menší než max.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0