Viac

Prázdne geometrie v GEOMETRYCOLLECTION


Práve som si všimol nejaké podivné správanie v PostGIS, pokiaľ ide o analýzu WKT.

Kolekcia GeometryCole obsahujúca 1 alebo viac prázdnych geometrií

postgis_test =# SELECT ST_GeomFromEWKT ('GEOMETRYCOLLECTION (BOD PRÁZDNY, VYPRÁZDNENIE LINESTRINGU)'); 01070000000000000000

je rovnaká ako prázdna zbierka GeometryCollection

postgis_test =# SELECT ST_GeomFromEWKT ('GEOMETRYCOLLECTION EMPTY'); 01070000000000000000

Toto sa nezdá byť správne. Ale tu je skutočne zvláštna časť. Ak do zbierky vhodíte neprázdnu geometriu, prázdne geometrie sa zrazu v kolekcii zobrazia:

postgis_test =# SELECT ST_GeomFromEWKT ('GEOMETRYCOLLECTION (BOD PRÁZDNY, PRÁZDNY LINESTRING, BOD PRÁZDNY)'); 01070000000000000000 postgis_test =# SELECT ST_GeomFromEWKT ('GEOMETRYCOLLECTION (BOD PRÁZDNY, VYPRÁZDNENIE LINESTRINGU, BOD (1 2))'); 010700000003000000010400000000000000102000000000000001010100000000000000000000 F03F0000000000000040

Zdá sa zvláštne, že prázdne geometrie sú rozpoznané iba vtedy, ak zbierka obsahuje aspoň jednu prázdnu.

Je to chyba? Je toto správanie niekde zdokumentované?


Nie je to chrobák, skôr strategická lenivosť. Verzie 1.X PostGIS podporovali iba GEOMETRYCOLLECTION EMPTY, nie iné formy prázdnych. 2.X som (možno hlúpo) prijal celú škálu ničoho. Výsledkom je nie úplne úplná podpora odrôd ničoho, ktorá je trochu zle formovaná skutočnosťou, že podporné knižnice ako GEOS majú svoje vlastné koncepty toho, aké druhy ničoho sa oplatí zachovať, a že štandardy ako WKB nemôžu ani predstavovať niektoré jej formy (POINT EMPTY nie je vo WKB reprezentovateľný).

V každom prípade veľa nič nie je nič. Potrebujete zachovať vernosť svojich zbierok ničoho?

AKTUALIZÁCIA

Pri pohľade na kód PostGIS som si celkom istý, že vidíte účinok funkcie „je prázdny“. Váš vstup je v skutočnosti analyzovaný na vnútornú reprezentáciu, ktorá odráža vstup, zbierku prázdnych vecí. Ale na výstupe do WKB je prvým testom „je táto vec prázdna? Ak áno, emitujte prázdnu reprezentáciu“. Potom dostaneme túto situáciu: je samotná zbierka geometrie prázdnych vecí prázdna? Filozofia 101. Pokiaľ ide o väčšinu vecí, ktoré by sme s ním mohli urobiť (vypočítať plochu alebo dĺžku, pretnúť ju vecami, skutočne akúkoľvek operáciu), zbierka prázdnych miest je rovnaká ako jediná prázdna. Mucking s definíciou „je prázdny“ má mnoho efektov po celom kóde kódu, takže sme sa ho veľmi nedotkli.


Prázdne geometrie v GEOMETRYCOLLECTION - geografické informačné systémy

Zbierka geometrických tvarov. Zahrnuté geometrie môžu byť Polyline s, Polygon s alebo iné GeometryCollection. Preskupenie príbuzných polygónov do jednej kolekcie pomôže urýchliť vykresľovanie. Polygóny je možné preskupiť na priestorovom základe (európske polygóny, africké polygóny atď.) Alebo na hodnotovom základe (50 metrov izobath, 100 metrov izobath atď.).

Kolekcia GeometryCollection je pôvodne postavená na súradnicovom systéme. Po konštrukcii je možné pridať ľubovoľné množstvo geometrií pomocou príkazu add (geometria) alebo add (float [], int, int). Geometrie sa vykreslia v poradí, v akom boli pridané. Ak sú mnohouholníky zlomené na veľa kusoch, potom metóda zostavenia (.) Môže pomôcť pri ich zostavení pred vykreslením.

Poznámka: táto trieda má prirodzené usporiadanie, ktoré je v rozpore s rovnými. Metóda ComparTo (java.lang.Object) porovnáva iba hodnotu zbierky, zatiaľ čo equals (java.lang.Object) porovnáva aj všetky súradnicové body. Prirodzené usporiadanie pre GeometryCollection je vhodné na triedenie zbierok v abecednom poradí alebo izobatoch vo vzostupnom poradí nadmorskej výšky.

Verzia: $ Id: GeometryCollection.java 17672 2006-01-19 00: 25: 55Z desruisseaux $ Autor: Martin Desruisseaux Pozri tiež: Polyline, Polygon, Serialized Form Úloha: TODO: Pridajte metódu „getTree (boolean)“ vracajúcu TreeNode . Bolo by to užitočné pri ladení. Uzol obsahuje GeometryCollection iba vtedy, ak je booleovský argument nepravdivý, GeometryCollection a Polygons, ak je pravdivý (nie Polylines). Node.toString vráti Geometry.getName ().

Zhrnutie poľa
Polia zdedené z triedy org.geotools.renderer.geom.Geometry
DEFAULT_COORDINATE_SYSTEM
Zhrnutie konštruktéra
GeometryCollection ()
Vytvorte pôvodne prázdnu kolekciu pomocou predvoleného súradnicového systému.
GeometryCollection (CoordinateSystem coordinateSystem)
Vytvorte pôvodne prázdnu zbierku.
GeometryCollection (GeometryCollection geometry)
Vytvorte kolekciu s rovnakými údajmi ako zadaná kolekcia.
Zhrnutie metódy
prázdny pridať (float [] pole, int nižšie, int horné)
Pridáva body do tejto zbierky.
Geometria pridať (Geometry toAdd)
Pridajte do tejto zbierky geometriu.
prázdny pridať (java.awt.Shape shape)
Pridajte geometrie zo zadaného tvaru.
prázdny zostaviť (priebeh ProgressListener)
Zostavte všetky krivky s predvoleným nastavením.
prázdny zostaviť (java.awt.Shape mapBounds, float [] toComplete, ProgressListener pokrok)
Zostavte všetky krivky a vytvorte uzavreté polygóny pre správne vykreslenie.
Geometria Clip (Clipper Clipper)
Vráti geometriu približne rovnakú ako táto geometria orezanú na zadané hranice.
java.lang.Object klon ()
Vráťte kópiu tejto geometrie.
int porovnať (objekt java.lang.Object)
Porovnajte túto geometriu so zadaným predmetom pre objednávku.
plavák komprimovať (úroveň kompresie)
Komprimujte všetky geometrie v tejto kolekcii.
booleovský obsahuje (double x, double y)
Udáva, či je zadaný (x, y) bod vo vnútri tejto geometrie.
booleovský obsahuje (bod java.awt.geom.Point2D)
Udáva, či je zadaný bod vo vnútri tejto geometrie.
booleovský obsahuje (java.awt.geom.Rectangle2D rect)
Skontroluje, či je zadaný obdĺžnik v tejto geometrii úplne obsiahnutý.
booleovský obsahuje (java.awt.Shape shape)
Skontroluje, či je zadaný tvar v tejto geometrii úplne obsiahnutý.
booleovský rovná sa (objekt java.lang.Object)
Porovnáva zadaný objekt s touto geometriou kvôli rovnosti.
java.awt.geom.Rectangle2D getBounds2D ()
Vráti ohraničovací rámček tejto geometrie vrátane možných ohraničení.
CoordinateSystem getCoordinateSystem ()
Vráti súradnicový systém geometrie alebo hodnotu null, ak nie je známy.
java.util.Zbierka getGeometries ()
Vráti zbierku predmetov geometrie.
java.util.Zbierka getGeometries (bod java.awt.geom.Point2D)
Vráti kolekciu geometrií obsahujúcich zadaný bod.
java.util.Zbierka getGeometriesContaining (java.awt.Shape shape)
Vráti kolekciu geometrií obsahujúcich zadaný tvar.
java.util.Zbierka getGeometriesIntersecting (java.awt.Shape shape)
Vráti zbierku geometrií pretínajúcich zadaný tvar.
java.lang.String getName (java.util.Locale locale)
Vráti lokalizovaný názov pre túto geometriu alebo hodnotu null, ak neexistuje.
java.awt.geom.PathIterator getPathIterator (transformácia java.awt.geom.AffineTransform)
Vráti iterátor cesty pre túto geometriu.
int getPointCount ()
Vráti počet bodov v tejto geometrii.
java.lang.String getPolygonName (bod java.awt.geom.Point2D, java.util.Locale locale)
Vráti názov najmenšieho mnohouholníka v danom mieste.
plavák getRenderingResolution ()
Vráti rozlíšenie vykresľovania.
Štatistiky getResolution ()
Vráti rozlíšenie geometrie.
plavák getValue ()
Vráti hodnotu pre túto kolekciu alebo NaN, ak žiadna.
int hashCode ()
Vráti hodnotu hash pre túto geometriu.
booleovský pretína (java.awt.geom.Rectangle2D rect)
Testuje, či zadaný obdĺžnik pretína vnútro tejto geometrie.
booleovský pretína (java.awt. Tvar tvaru)
Testuje, či zadaný tvar pretína vnútro tejto geometrie.
booleovský je prázdny ()
Určuje, či je zbierka prázdna.
chránená prázdnota readObject (java.io.ObjectInputStream v)
Vyvolané počas deserializácie.
booleovský odstrániť (Geometry toRemove)
Odstráni geometriu z tejto zbierky.
prázdny odobrať všetky ()
Odstráňte z tejto geometrie všetky geometrie.
prázdny setCoordinateSystem (CoordinateSystem coordinateSystem)
Nastavte súradnicový systém geometrie.
prázdny setRenderingResolution (float rozlíšenie)
Naznačuje tejto geometrii, že uvedené rozlíšenie je dostatočné na vykreslenie.
prázdny setResolution (dvojité rozlíšenie)
Nastavte rozlíšenie geometrie.
prázdny setValue (java.lang.Comparable value)
Nastavte hodnotu pre túto geometriu.
prázdny setValue (pohyblivá hodnota)
Nastavte hodnotu pre túto geometriu.
chránená prázdnota writeObject (java.io.ObjectOutputStream von)
Vyvolané počas serializácie.
Metódy zdedené z triedy org.geotools.renderer.geom.Geometry
contains, getBounds, getID, getPathIterator, getStyle, getUserObject, intersects, setID, setStyle, setUserObject, toString
Metódy zdedené z triedy java.lang.Object
dokončiť, getClass, upozorniť, oznámiť všetkým, čakať, čakať, čakať

Kolekcia geometrie

Kolekcia geometrie

Kolekcia geometrie

GetName

Prepíše: getName v triede Geometria Parametre: locale - požadované miestne nastavenie. Ak pre toto národné prostredie nie je k dispozícii žiadny názov, použije sa predvolené miestne nastavenie. Vráti: názov geometrie, lokalizovaný, ak je to možné. Úloha: TODO: Mali by sme nájsť spôsob, ako sa vyhnúť vytváraniu objektu Format pri každom vyvolaní.

GetValue

SetValue

SetValue

Parametre: hodnota - hodnota hodnoty pre túto geometriu.

GetCoordinateSystem

SetCoordinateSystem

Určené: setCoordinateSystem v triede Geometria Parametre: coordinateSystem - nový súradnicový systém. Nulová hodnota vynuluje súradnicový systém zadaný v čase výstavby. Hodí: org.opengis.referencing.operation.TransformException - Ak transformácia zlyhala. V prípade zlyhania zostane stav tohto objektu nezmenený (akoby táto metóda nebola nikdy vyvolaná). UnmodifiableGeometryException - ak by zmena tejto geometrie poškodila kontajner. Aby ste sa vyhli tejto výnimke, klonujte túto geometriu a až potom ju upravte.

Parametre: pole - Súradnicové pole (môže obsahovať NaN). Tieto údaje budú skopírované. V dôsledku toho akékoľvek úpravy údajov nebudú mať žiadny vplyv na geometrie vytvorené touto metódou. lower - Index prvej x súradnice, ktorá sa má pridať do krivky. horná - Index za poslednou y ordináciou, ktorá sa má pridať do krivky. Hodí: UnmodifiableGeometryException - ak by úprava tejto geometrie poškodila kontajner. Aby ste sa vyhli tejto výnimke, klonujte túto geometriu a až potom ju upravte.

Parametre: tvar - tvar, ktorý sa má pridať. Hodí: java.lang.IllegalArgumentException - ak nie je možné pridať určený tvar. K tejto chybe môže dôjsť, ak je tvar inštanciou geometrie a používa nekompatibilný súradnicový systém. UnmodifiableGeometryException - ak by úprava tejto geometrie poškodila kontajner. Aby ste sa vyhli tejto výnimke, klonujte túto geometriu a až potom ju upravte.

Parametre: toAdd - Geometria, ktorú chcete pridať. Hodí: org.opengis.referencing.operation.TransformException - ak zadanú geometriu nemožno transformovať v tomto súradnicovom systéme kolekcie. UnmodifiableGeometryException - ak by úprava tejto geometrie poškodila kontajner. Aby ste sa vyhli tejto výnimke, klonujte túto geometriu a až potom ju upravte.

Odstrániť

Parametre: toRemove - Geometria, ktorú chcete odstrániť. Vráti: true, ak bola geometria odstránená. Hodí: UnmodifiableGeometryException - ak by úprava tejto geometrie poškodila kontajner. Aby ste sa vyhli tejto výnimke, klonujte túto geometriu a až potom ju upravte.

Odobrať všetky

Hodí: UnmodifiableGeometryException - ak by úprava tejto geometrie poškodila kontajner. Aby ste sa vyhli tejto výnimke, klonujte túto geometriu a až potom ju upravte.

Zostaviť

Spustenie tejto metódy raz pre danú zbierku geometrií pred vykreslením pomôže ich oprava. Algoritmus je:

  1. Zostaví sa zoznam všetkých možných párov kriviek.
  2. Pre akýkoľvek pár kriviek sa vypočíta najkratšia vzdialenosť medzi ich koncami. Do úvahy sa vezmú všetky kombinácie medzi začiatkom a koncom lomenej čiary so začiatkom alebo koncom druhej krivky.
  3. Identifikuje sa pár s najkratšou vzdialenosťou. Ak je najkratšia vzdialenosť od konca jednej krivky druhým koncom tej istej krivky, potom je krivka identifikovaná ako uzavretý polygón (napr. Ostrov alebo jazero). V opačnom prípade sa najbližšie krivky spoja.
  4. Smyčka sa znova vykoná od kroku 1, kým sa nezlúčia žiadne ďalšie krivky.

Parametre: mapBounds - ohraničený tvar mapy alebo null pre predpoklad obdĺžnikovej mapy odvodenej z tejto geometrie. Toto je ohraničujúci tvar softvéru, ktorý vytvoril krivky, nie ľubovoľný klip, ktorý by aplikácia chcela. toComplete - hodnota zbierok, ktoré sa majú doplniť orámovaním mapy, alebo null, ak žiadne. priebeh - voliteľný poslucháč postupu (v žiadnom prípade null). Toto je voliteľný, ale odporúčaný argument, pretože výpočet môže byť veľmi dlhý. Hodí: org.opengis.referencing.operation.TransformException - ak bola transformácia požadovaná a neúspešná. UnmodifiableGeometryException - ak by zmena tejto geometrie poškodila kontajner. Aby ste sa vyhli tejto výnimke, klonujte túto geometriu a až potom ju upravte.

Zostaviť

Parametre: progress - voliteľný poslucháč pokroku (v žiadnom prípade null). Toto je voliteľný, ale odporúčaný argument, pretože výpočet môže byť veľmi dlhý. Hodí: org.opengis.referencing.operation.TransformException - ak bola transformácia požadovaná a neúspešná. UnmodifiableGeometryException - ak by úprava tejto geometrie poškodila kontajner. Aby ste sa vyhli tejto výnimke, klonujte túto geometriu a až potom ju upravte.

Prepíše: klip v triede Geometria Parametre: clipper - oblasť orezania. Vráti hodnotu: null, ak táto geometria nepretína klip, toto, ak nebol vykonaný žiadny klip, alebo nová orezaná geometria.

GetGeometries

Návraty: zbierka predmetov z geometrie.

GetGeometries

Parametre: bod - Súradnice, na ktoré sa treba pozrieť v súradnicovom systéme tejto geometrie. Vráti: Zbierka geometrií pod zadaným bodom.

GetGeometriesContaining

Parametre: tvar - tvar so súradnicami vyjadrenými podľa getCoordinateSystem (). Návraty: zbierka geometrií obsahujúca zadaný tvar.

GetGeometriesIntersecting

Parametre: tvar - tvar so súradnicami vyjadrenými podľa getCoordinateSystem (). Návraty: zbierka geometrií pretínajúcich zadaný tvar.

GetPolygonName

Parametre: bod - Súradnice, na ktoré sa treba pozrieť v súradnicovom systéme tejto geometrie. locale - požadované miestne nastavenie pre názov geometrie. Vráti: názov geometrie v danom mieste alebo hodnotu null, ak neexistuje.

Je prázdny

GetPointCount

GetBounds2D

Určené: getBounds2D v rozhraní java.awt.Shape Špecifikované: getBounds2D v triede Geometry Returns: Ohraničujúce pole tejto geometrie. Zmeny tohto obdĺžnika neovplyvnia vyrovnávaciu pamäť.

Obsahuje

Určené: obsahuje v rozhraní java.awt.Shape Overrides: obsahuje v triede Geometria Parametre: x - zadané súradnice x v tomto súradnicovom systéme geometrie. y - zadané súradnice y v tomto geometrickom súradnicovom systéme. Vráti hodnotu: true, ak sú zadané súradnice vnútri hranice geometrie, hodnota false.

Obsahuje

Určené: obsahuje v rozhraní java.awt.Shape Určené: obsahuje v triede Geometria Parametre: bod - zadaný bod v tomto súradnicovom systéme geometrie. Vracia: true, ak je zadaný bod vnútri hranice geometrie, false.

Obsahuje

Určené: obsahuje v rozhraní java.awt.Shape Overrides: obsahuje v triede Geometria

Obsahuje

Pretína

Určené: pretína v rozhraní java.awt.Shape Overrides: pretína v triede Geometria

Pretína

Komprimovať

Určené: kompresiou v triede Geometria Parametre: úroveň - Úroveň kompresie (alebo algoritmus), ktorý sa má použiť. Vysvetlenie dostupných algoritmov nájdete v javadocu CompressionLevel. Vráti: A. odhad rýchlosti kompresie. Napríklad hodnota 0,2 znamená, že nový polygón používa približne O 20% menej pamäte. Hodí: org.opengis.referencing.operation.TransformException - Ak sa počas kartografickej projekcie vyskytla chyba. UnmodifiableGeometryException - ak by úprava tejto geometrie poškodila kontajner. Aby ste sa vyhli tejto výnimke, klonujte túto geometriu a až potom ju upravte.

GetResolution

Určené: getResolution v triede Geometry Returns: Štatistiky o rozlíšení alebo nulové, ak táto geometria neobsahuje žiadny bod. Ak nemá hodnotu null, objekt štatistiky obsahuje minimálnu, maximálnu, priemernú, strednú hodnotu odmocniny a štandardnú odchýlku vždy v lineárnych jednotkách.

SetResolution

Určené: setResolution v triede Geometria Parametre: rozlíšenie - požadované rozlíšenie, v rovnakých jednotkách ako getResolution (). Hodí: org.opengis.referencing.operation.TransformException - Ak boli potrebné nejaké súradnicové transformácie, ktoré sa nepodarilo. V prípade poruchy neexistuje žiadna záruka na stav obrysu. UnmodifiableGeometryException - ak by úprava tejto geometrie poškodila kontajner. Aby ste sa vyhli tejto výnimke, klonujte túto geometriu a až potom ju upravte.

GetRenderingResolution

Prepísanie: getRenderingResolution v triede Geometria Returns: Rozlíšenie vykresľovania v jednotkách súradnicového systému tejto geometrie (lineárne alebo uhlové jednotky) alebo 0, ak by sa malo použiť najjemnejšie dostupné rozlíšenie.

SetRenderingResolution

Prepísania: setRenderingResolution v triede Geometria Parametre: Resolution - Rozlíšenie, ktoré sa má použiť v čase vykresľovania, v jednotkách súradnicového systému tejto geometrie (lineárne alebo uhlové jednotky).


Skalárne funkcie

Vráti plochu danej geometrie geom ak ide o POLYGON alebo MULTIPOLYGON s použitím špecifikovaného typu roztoku. Vráti sa 0 ak je typ vstupnej geometrie (MULTI) BOD alebo (MULTI) LINESTRING. Dostupné typy riešení:

  • 0 (predvolené) - 2D euklidovská oblasť
  • 1 - zakrivený povrch na guli v metroch štvorcových
  • 2 - zakrivený povrch na sféroide v metroch štvorcových

Vráti geometriu, ktorá predstavuje všetky body, ktorých vzdialenosť od danej geometrie je geom je menšia alebo rovná danej vzdialenosti polomer. The polomer jednotky môžu byť špecifikované podľa Riešenie zadajte (predvolené je v stupňoch) a polomer je vytvorený v poskytnutých štýl. The štýl možnosti sú špecifikované ako zoznam dvojíc kľúč – hodnota oddelených prázdnymi miestami, napr. 'quad_segs = 8 endcap = kolo'. Ak prázdne štýl zoznam (''), budú použité predvolené nastavenia. The štýl parameter musí byť zadaný, aby poskytoval a Riešenie typ.

  • quad_segs - počet segmentov použitých na aproximáciu štvrťkruhu (predvolené je 8)
  • koncovka - štýl koncovej čiary vyrovnávacej pamäte (predvolené je okrúhly) možnosti sú okrúhly, plochý (alebo zadok) a námestie
  • pripojiť sa - štýl spojenia vyrovnávacej pamäte (predvolené je okrúhly) možnosti sú okrúhly, mitra (alebo mitra) a skosenie
  • mitre_limit - limit pomeru pokosu vyjadrený ako číslo s pohyblivou rádovou čiarkou (mitre_limit je tiež prijateľné)
  • 0 (predvolené) - 2D euklidovská vzdialenosť polomeru v stupňoch
  • 1 - vzdialenosť polomeru zakriveného povrchu na guli v metroch
  • 2 - vzdialenosť polomeru zakriveného povrchu na sféroide v metroch

Okolo vytvorte 5-metrový nárazník geom pomocou predvolených štýlov: ST_BUFFER (geom, 5, '', 1). Okolo vytvorte 5-stopový (prevod stôp na metre) geom pomocou nasledujúcich štýlov: ST_BUFFER (geom, 5*0,3048, 'quad_segs = 4 endcap = flat', 1)

Vypočíta 2-D BOD v geom1 k tomu je najbližšie geom2 pomocou špecifikovaného typu riešenia. Ak geom1 alebo geom2 je prázdny, a nulový sa vracia. Dostupné typy riešení:

  • 0 (predvolené) - Euclidean vypočíta najbližší bod pomocou 2 -D euklidovskej vzdialenosti
  • 1 - Haversine vypočíta najbližší bod pomocou vzdialenosti gule v metroch
  • 2 - Vincenty vracia minimálnu sféroidnú vzdialenosť v metroch, presnejšiu ako Haversine, ale pomalší výkon

Vráti iba uvedené typ z danej geometrie zbierka. Typ je číslo, ktoré mapuje nasledujúce:

Vypočíta minimálnu vzdialenosť medzi danými geometriami, geom1 a geom2pomocou zadaného typu riešenia. Dostupné typy riešení:

  • 0 (predvolené) - Euclidean vráti 2 -D euklidovskú vzdialenosť
  • 1 - Haversine vráti minimálnu vzdialenosť gule v metroch
  • 2 - Vincenty vracia minimálnu sféroidnú vzdialenosť v metroch, presnejšiu ako Haversine, ale pomalší výkon

Poznámka: Ak geom1 a geom2 pretínať (overte pomocou ST_INTERSECTS), vzdialenosť bude vždy 0.

Vypočíta minimálnu vzdialenosť medzi danými bodmi, x1, y1 a x2, y2pomocou zadaného typu riešenia. Dostupné typy riešení:

  • 0 (predvolené) - Euclidean vráti 2 -D euklidovskú vzdialenosť
  • 1 - Haversine vráti minimálnu vzdialenosť gule v metroch
  • 2 - Vincenty vracia minimálnu sféroidnú vzdialenosť v metroch, presnejšiu ako Haversine, ale pomalší výkon

Vráti sa 1 (true) ak je maximálna vzdialenosť medzi geometriami geom1 a geom2 je menšia alebo rovná uvedenému vzdialenosť jeden druhého pomocou určeného typu riešenia. Ak geom1 alebo geom2 je nulový, 0 (false) sa vráti. Dostupné typy riešení:

  • 0 (predvolené) - Euklidovský používa na výpočet vzdialenosti stupne
  • 1 - Sféra používa na výpočet vzdialenosti metre
  • 2 - Sféroid používa na výpočet vzdialenosti metre, presnejšie ako guľa, ale pomalší výkon

Vráti sa 1 (true) ak je minimálna vzdialenosť medzi geometriami geom1 a geom2 je v rámci uvedených vzdialenosť jeden druhého pomocou určeného typu riešenia. Dostupné typy riešení:

  • 0 (predvolené) - Euklidovský používa na výpočet vzdialenosti stupne
  • 1 - Sféra používa na výpočet vzdialenosti metre
  • 2 - Sféroid používa na výpočet vzdialenosti metre, presnejšie ako guľa, ale pomalší výkon

Vráti elipsu pomocou nasledujúcich hodnôt:

  • centerx - súradnica x alebo zemepisná dĺžka použitá na vycentrovanie elipsy
  • centery - súradnica y alebo zemepisná šírka použitá na vycentrovanie elipsy
  • výška - výška elipsy (v stupňoch)
  • šírka - šírka elipsy (v stupňoch)

Vráti sa 1 (pravda) ak geom1 je v rámci uvedených vzdialenosť ohraničujúceho rámčeka z geom2 pomocou špecifikovaného typu riešenia. Dostupné typy riešení:

  • 0 (predvolené) - Euklidovský používa na výpočet vzdialenosti stupne
  • 1 - Sféra používa na výpočet vzdialenosti metre

Vráti trojrozmernú verziu (napríklad súradnice X, Y a Z) geom, poskytnutá geometria alebo sada geometrií (napr. prostredníctvom názvu stĺpca GEOMETRYCOLLECTION alebo WKT) pomocou z ako nová hodnota z geometrie. Poskytnuté hodnoty z môžu byť tiež odvodené z číselného stĺpca. Ak nie z je poskytovaná, a 0 bude aplikovaný.

Ak je k dispozícii stĺpec WKT geom a je poskytnutý numerický stĺpec z, budú hodnoty z priradené k poskytnutým geometriám podľa riadkov v zdrojovej tabuľke. Ak je k dispozícii singulárna geometria geom a je poskytnutý stĺpec z„Trojrozmerné verzie poskytnutej geometrie sa vrátia pre každú hodnotu z uvedenú v tejto ponuke z stĺpci. Ak sú pre obidva uvedené stĺpce geom a z a v každom stĺpci sú uvedené nulové hodnoty, riadok obsahujúci nulové hodnoty bude vo výsledkoch preskočený.

Vráti reprezentáciu hašovacieho reťazca danej geometrie geom so špecifikovaným presnosť (dĺžka reťazca geohash). Čím dlhšie presnosť, tým je hash presnejší. Predvolene, presnosť je nastavený na 20 maximum pre presnosť je 32. Vráti sa nulový keby geom je prázdna geometria.

Vrátená hodnota bude nie byť geohash presnej geometrie, ale geohash ťažiska danej geometrie

Vráti ID typu z geom. Mapovanie typov a ID:

  • BOD = 0
  • LINESTRING = 1
  • POLYGÓN = 3
  • MULTIPOINT = 4
  • MULTILINESTRING = 5
  • MULTIPOLYGÓN = 6
  • GEOMETRYKOLEKCIA = 7

Vytvorí MULTIPOLYGÓN obsahujúci mriežku šesťuholníkov medzi danými minimálnymi a maximálnymi bodmi ohraničujúceho rámčeka. Minimálny bod nemôže byť väčší alebo rovný maximálnemu bodu. Veľkosť (v metroch) strán jednotlivých šesťuholníkov je určená hodnotou bunka_strana. The bunka_strana nemôže byť väčšia ako šírka alebo výška ohraničujúceho rámčeka. Maximálny počet buniek, ktoré je možné vyrobiť, je určený hodnotou limit, kladné celé číslo. Podporované hodnoty pre limit:

  • -1 - Žiadny limit na počet generovaných buniek (efektívne obmedzený systémovou pamäťou)
  • 0 (predvolené) - 100 miliónov buniek
  • & ltn> - Vlastný limit pre n bunky

Ak požiadavka na vlastný limit špecifikuje viac buniek (na základe ohraničovacieho poľa a bunka_strana) ako je systémový limit, a nulový sa vracia.

Vráti dĺžku geometrie, ak ide o LINESTRING alebo MULTILINESTRING. Vráti sa 0 ak sú podporované aj iné typy geometrie, napr. BOD, MULTIPOINT atď., GEOMETRYCOLLECTION, ale stále platí vyššie uvedené obmedzenie typu, kolekcia bude rekurzívne vyhľadávať LINESTRING a MULTILINESTRING a vráti sa súčet všetkých podporovaných typov geometrie (nepodporované typy sa ignorujú ). Dostupné typy riešení:

  • 0 (predvolené) - 2D euklidovská dĺžka
  • 1 - dĺžka na guli v metroch
  • 2 - dĺžka na sféroide v metroch

Vráti čiaru LINESTRING, ktorá predstavuje najdlhšiu čiaru bodov medzi týmito dvoma geometriami. Ak sa nájde viacero najdlhších riadkov, vráti sa iba prvý nájdený riadok. Ak geom1 alebo geom2 je prázdny, nulový sa vracia. Dostupné typy riešení:

  • 0 (predvolené) - Euclidean používa stupne na výpočet najdlhšieho riadku
  • 1 - Sféra používa na výpočet najdlhšej čiary metre
  • 2 - Sféroid používa metre na výpočet najdlhšej čiary, presnejšie ako guľa, ale má nižší výkon

Vytvorí LINESTRING z geom ak je to MULTIPOINT. Ak geom je BOD, musí byť aspoň jeden ďalší BOD, aby bolo možné vytvoriť LINESTRING. Ak geom je LINESTRING, musí mať najmenej dva body. Vráti sa nulový keby geom nie je BOD, MULTIPOINT alebo LINESTRING

Táto funkcia môže byť z hľadiska výkonu dosť nákladná

V danej súradnici vytvorí BOD

Táto funkcia môže byť z hľadiska výkonu dosť nákladná

Vytvorí POLYGON z geom. Vstupy musia byť zatvorené

Táto funkcia môže byť z hľadiska výkonu dosť nákladná

Vráti maximálnu vzdialenosť medzi daným geom1 a geom2 geometrie pomocou určeného typu riešenia. Ak geom1 alebo geom2 je prázdny, nulový sa vracia. Dostupné typy riešení:

  • 0 (predvolené) - vráti maximálnu 2 -D euklidovskú vzdialenosť
  • 1 - Sféra vráti maximálnu vzdialenosť v metroch
  • 2 - Sféroid vracia maximálnu vzdialenosť v metroch, presnejšiu ako guľa, ale nižší výkon

Vytvorí viac vyrovnávacích pamätí na zadanú hodnotu vzdialenosť okolo daného geom geometria. Viacnásobné vzdialenosti sú uvedené ako hodnoty oddelené čiarkami v poli, napr. [10,20,30]. Platné hodnoty pre vonku sú:

  • ÚPLNE - označuje, že nárazníky sa budú prekrývať alebo pokrývať dané geom geometria. Toto je predvolené nastavenie.
  • MIMORIADNE - naznačuje, že okolo daného kruhu budú krúžky geom geometria.

Vráti obvod geometrie, ak ide o POLYGON alebo MULTIPOLYGON. Vráti sa 0 ak ide o iný typ geometrie, napr. BOD, MULTIPOINT, LINESTRING alebo MULTILINESTRING. Podporované sú aj súbory GEOMETRYCOLLECTION, ale stále platí vyššie uvedené obmedzenie typov. V kolekcii sa budú rekurzívne vyhľadávať POLYGONY a MULTIPOLYGONY a vráti sa súčet všetkých podporovaných typov geometrie (nepodporované typy sa ignorujú). Dostupné typy riešení:

  • 0 (predvolené) - 2D euklidovská dĺžka
  • 1 - dĺžka na guli v metroch
  • 2 - dĺžka na sféroide v metroch

Vráti BOD pomocou zadaného geohash s presnosťou nastavenou na celé číslo presnosť. Ak presnosť je zadaná, funkcia použije toľko znakov v hashe, ktoré sa rovnajú presnosť na vytvorenie geometrie. Ak nie presnosť je zadaná, celá dĺžka súboru geohash sa používa.

Vrátený BOD predstavuje stred ohraničujúceho rámčeka geohash

Vytvorí MULTIPOLYGÓN obsahujúci mriežku bodov v tvare štvorca medzi danými minimálnymi a maximálnymi bodmi ohraničujúceho rámčeka. Minimálny bod nemôže byť väčší alebo rovný maximálnemu bodu. Vzdialenosť medzi bodmi (v metroch) je určená symbolom bunka_strana. The bunka_strana nemôže byť väčšia ako šírka alebo výška ohraničujúceho rámčeka. Maximálny počet buniek, ktoré je možné vyrobiť, je určený hodnotou limit, kladné celé číslo. Podporované hodnoty pre limit:

  • -1 - Žiadny limit na počet generovaných buniek (efektívne obmedzený systémovou pamäťou)
  • 0 (predvolené) - 100 miliónov buniek
  • & ltn> - Vlastný limit pre n bunky

Ak požiadavka na vlastný limit špecifikuje viac buniek (na základe ohraničovacieho poľa a bunka_strana) ako je systémový limit, a nulový sa vracia.

Vráti zadanú hodnotu geom ale segmentované n koľkokrát v závislosti od toho, ako max_segment_length vzdialenosť (v jednotkách na základe Riešenie typ) rozdeľuje pôvodnú geometriu. Nové geom zaručene bude mať segmenty, ktoré sú menšie ako dané max_segment_length. Body POINT nie je možné segmentovať. Geometrie zbierky (GEOMETRYCOLLECTION, MULTILINESTRING, MULTIPOINT atď.) Je možné segmentovať, ale segmentovať sa budú iba jednotlivé časti, nie kolekcia ako celok. Dostupné typy riešení:

  • 0 - Euklidovský používa na výpočet vzdialenosti stupne
  • 1 (predvolené) - Sféra používa na výpočet vzdialenosti metre

Vráti zjednodušenú verziu danej položky geom pomocou algoritmu na zníženie počtu bodov obsahujúcich danú geometriu pri pokuse o čo najlepšie zachovanie pôvodného tvaru. Dané tolerancia určuje, ako veľmi sa má geometria zjednodušiť. Čím vyššie, tolerancia, čím viac bola vrátená geometria zjednodušená. Niektoré otvory môžu byť odstránené a vo vrátenej geometrii môžu byť prítomné niektoré neplatné mnohouholníky (napr. Automaticky sa pretínajúce atď.). Zjednodušiť je možné iba (MULTI) LINESTRINGs a (MULTI) POLYGONs, vrátane tých, ktoré sa nachádzajú v rámci GEOMETRYCOLLECTIONs, akékoľvek iné objekty geometrie sa vrátia nezjednodušené.

The tolerancia by mali byť poskytované v rovnakých jednotkách ako údaje. Ako pravidlo, a tolerancia z 0.00001 by zodpovedalo asi jednému metru.

Vráti zjednodušenú verziu danej položky geom pomocou algoritmu na zníženie počtu bodov obsahujúcich danú geometriu pri pokuse o čo najlepšie zachovanie pôvodného tvaru. Dané tolerancia určuje, ako veľmi sa má geometria zjednodušiť. Čím vyššie, tolerancia, čím viac bola vrátená geometria zjednodušená. Vo vrátenej geometrii nebudú odstránené žiadne otvory a nebudú prítomné žiadne neplatné mnohouholníky (napr. Seba pretínajúce sa atď.). Zjednodušiť je možné iba (MULTI) LINESTRINGs a (MULTI) POLYGONs, vrátane tých, ktoré sa nachádzajú v rámci GEOMETRYCOLLECTIONs, akékoľvek iné objekty geometrie sa vrátia nezjednodušené.

The tolerancia by mali byť poskytované v rovnakých jednotkách ako údaje. Ako pravidlo, a tolerancia z 0.00001 by zodpovedalo asi jednému metru.

Vytvorí MULTIPOLYGÓN obsahujúci mriežku štvorcov medzi danými minimálnymi a maximálnymi bodmi ohraničujúceho rámčeka. Minimálny bod nemôže byť väčší alebo rovný maximálnemu bodu. Veľkosť (v metroch) strán jednotlivých štvorcov je určená hodnotou bunka_strana. The bunka_strana nemôže byť väčšia ako šírka alebo výška ohraničujúceho rámčeka. Maximálny počet buniek, ktoré je možné vyrobiť, je určený hodnotou limit, kladné celé číslo. Podporované hodnoty pre limit:

  • -1 - Žiadny limit na počet generovaných buniek (efektívne obmedzený systémovou pamäťou)
  • 0 (predvolené) - 100 miliónov buniek
  • & ltn> - Vlastný limit pre n bunky

Ak požiadavka na vlastný limit špecifikuje viac buniek (na základe ohraničovacieho poľa a bunka_strana) ako je systémový limit, a nulový sa vracia.

Vytvorí MULTIPOLYGÓN obsahujúci mriežku trojuholníkov medzi danými minimálnymi a maximálnymi bodmi ohraničujúceho rámčeka. Minimálny bod nemôže byť väčší alebo rovný maximálnemu bodu. Veľkosť (v metroch) strán jednotlivých trojuholníkov je určená hodnotou bunka_strana. The bunka_strana nemôže byť väčšia ako šírka alebo výška ohraničujúceho rámčeka. Maximálny počet buniek, ktoré je možné vyrobiť, je určený hodnotou limit, kladné celé číslo. Podporované hodnoty pre limit:

  • -1 - Žiadny limit na počet generovaných buniek (efektívne obmedzený systémovou pamäťou)
  • 0 (predvolené) - 100 miliónov buniek
  • & ltn> - Vlastný limit pre n bunky

Ak požiadavka na vlastný limit špecifikuje viac buniek (na základe ohraničovacieho poľa a bunka_strana) ako je systémový limit, a nulový sa vracia.


Prázdne geometrie v GEOMETRYCOLLECTION - geografické informačné systémy

Server MySQL 4.1 predstavuje priestorové rozšírenia, ktoré umožňujú generovanie, ukladanie a analýzu geografických funkcií. V súčasnosti sú tieto funkcie k dispozícii iba pre tabuľky MyISAM.

Táto kapitola sa zaoberá nasledujúcimi témami:

  • Základ týchto priestorových rozšírení v geometrickom modeli OpenGIS
  • Dátové formáty na reprezentáciu priestorových údajov
  • Ako používať priestorové údaje v MySQL
  • Použitie indexovania pre priestorové údaje
  • Rozdiely v MySQL od špecifikácie OpenGIS

MySQL implementuje priestorové rozšírenia podľa špecifikácie Open GIS Consortium (OGC). Ide o medzinárodné konzorcium viac ako 250 spoločností, agentúr a univerzít, ktoré sa zúčastňujú na vývoji verejne dostupných koncepčných riešení, ktoré môžu byť užitočné pre všetky druhy aplikácií, ktoré spravujú priestorové údaje. OGC spravuje webovú stránku http://www.opengis.org/.

V roku 1997 konzorcium Open GIS publikovalo špecifikácie jednoduchých funkcií OpenGIS (R) pre SQL, dokument, ktorý navrhuje niekoľko koncepčných spôsobov rozšírenia SQL RDBMS na podporu priestorových údajov. Táto špecifikácia je k dispozícii na webovej stránke Open GIS na adrese http://www.opengis.org/techno/implementation.htm. Obsahuje ďalšie informácie súvisiace s touto kapitolou.

MySQL implementuje podmnožinu SQL s typmi geometrie prostredie navrhnuté OGC. Tento termín označuje prostredie SQL, ktoré bolo rozšírené o sadu typov geometrie. Stĺpec SQL s hodnotou geometrie je implementovaný ako stĺpec, ktorý má typ geometrie. Špecifikácie popisujú sadu typov geometrie SQL a funkcie pre tieto typy na vytváranie a analýzu hodnôt geometrie.

A geografický prvok je čokoľvek na svete, ktoré má svoju polohu. Funkciou môže byť:

  • Entita. Napríklad hora, rybník, mesto.
  • Priestor. Napríklad oblasť PSČ, trópy.
  • Definovateľné miesto. Napríklad križovatka ako konkrétne miesto, kde sa križujú dve ulice.

Môžete tiež nájsť dokumenty, ktoré používajú výraz geopriestorová funkcia odkazovať na geografické vlastnosti.

Geometria je ďalšie slovo, ktoré označuje geografický prvok. Pôvodný význam slova geometria označuje odvetvie matematiky. Ďalší význam pochádza z kartografie, ktorá sa týka geometrických prvkov, ktoré kartografi používajú na mapovanie sveta.

Táto kapitola používa všetky tieto výrazy synonymne: geografický prvok, geopriestorová funkcia, funkcia, alebo geometria. Termín, ktorý sa tu najčastejšie používa, je geometria.

Definujme a geometria ako bod alebo súhrn bodov predstavujúci čokoľvek na svete, ktoré má polohu.

Sada typov geometrie navrhnutých OGC's SQL s typmi geometrie prostredie je založené na Geometrický model OpenGIS. V tomto modeli má každý geometrický objekt nasledujúce všeobecné vlastnosti:

  • Je spojený s priestorovým referenčným systémom, ktorý popisuje súradnicový priestor, v ktorom je objekt definovaný.
  • Patrí do určitej triedy geometrie.

Triedy geometrie definujú hierarchiu nasledovne:

  • Geometria (bez inštancie)
    • Bod (instantible)
    • Krivka (bez inštancie)
      • LineString (instantible)
        • Riadok
        • LinearRing
        • Polygón (instantiable)
        • MultiPoint (instantiable)
        • MultiCurve (bez inštancie)
          • MultiLineString (instantiable)
          • MultiPolygon (instantible)

          Niektoré z týchto tried sú abstraktné (nie je možné ich vytvoriť). To znamená, že nie je možné vytvoriť objekt týchto tried. Ostatné triedy sú spustiteľné a je možné z nich vytvárať objekty. Každá trieda má vlastnosti a inštančné triedy môžu mať tvrdenia (pravidlá, ktoré definujú platné inštancie tried).

          Základnou triedou je geometria. Je to abstraktná trieda. Instantovateľné podtriedy geometrie sú obmedzené na nulové, jednorozmerné a dvojrozmerné geometrické objekty, ktoré existujú v dvojrozmernom súradnicovom priestore. Všetky triedy instabilnej geometrie sú definované tak, že platné inštancie triedy geometrie sú topologicky uzavreté (to znamená, že všetky definované geometrie obsahujú ich ohraničenie).

          Základná trieda geometrie má podtriedy pre kolekciu bodov, kriviek, povrchov a geometrií:

          • Bod predstavuje objekty nulovej dimenzie.
          • Krivka predstavuje jednorozmerné objekty a má podtriedu LineString s podtriedami Line a LinearRing.
          • Surface je navrhnutý pre dvojrozmerné objekty a má podtriedu Polygón.
          • GeometryCollection má špecializované nulové, jednorozmerné a dvojrozmerné triedy zbierok s názvom MultiPoint, MultiLineString a MultiPolygon na modelovanie geometrií zodpovedajúcich zbierkam bodov, čiarových reťazcov a mnohouholníkov. MultiCurve a MultiSurface sú predstavené ako abstraktné nadtriedy, ktoré zovšeobecňujú rozhrania kolekcie na spracovanie kriviek a povrchov.

          Geometria, Curve, Surface, MultiCurve a MultiSurface sú definované ako neaktualizovateľné triedy. Definujú spoločný súbor metód pre svoje podtriedy a sú zahrnuté z dôvodu rozšíriteľnosti.

          Point, LineString, Polygon, GeometryCollection, MultiPoint, MultiLineString a MultiPolygon sú triedy, ktoré je možné vytvárať.

          Geometria je základnou triedou hierarchie. Nejde o triedu, ktorú nemožno vytvoriť, ale má množstvo vlastností, ktoré sú spoločné pre všetky hodnoty geometrie vytvorené z ktorejkoľvek z podtried Geometry. Tieto vlastnosti sú popísané v nasledujúcom zozname. (Jednotlivé podtriedy majú svoje vlastné špecifické vlastnosti, popísané neskôr.)

          17.2.3 Geometrické vlastnosti

          Hodnota geometrie má nasledujúce vlastnosti:

          • Jeho typ. Každá geometria patrí do jednej z inštančných tried v hierarchii.
          • Jeho SRIDalebo identifikátor priestorového odkazu. Táto hodnota identifikuje priestorový referenčný systém s geometriou, ktorý opisuje súradnicový priestor, v ktorom je geometrický objekt definovaný.
          • Jeho súradnice v jeho priestorovom referenčnom systéme reprezentovanom ako čísla s dvojitou presnosťou (8 bajtov). Všetky neprázdne geometrie obsahujú najmenej jeden pár súradníc (X, Y). Prázdne geometrie neobsahujú žiadne súradnice. Súradnice súvisia so SRID. Napríklad v rôznych súradnicových systémoch sa vzdialenosť medzi dvoma objektmi môže líšiť, aj keď majú objekty rovnaké súradnice, pretože vzdialenosť na planárne súradnicový systém a vzdialenosť na geocentrický systém (súradnice na zemskom povrchu) sú rôzne veci.
          • Jeho interiér, hranicaa exteriér. Všetky geometrie zaujímajú v priestore určitú pozíciu. Vonkajším dielom geometrie je všetok priestor, ktorý geometria nezaberá. Interiér je priestor, ktorý zaberá geometria. Hranica je rozhraním medzi interiérom a exteriérom geometrie.
          • Jeho MBR (Minimum Bounding Rectangle) alebo Obálka. Toto je ohraničujúca geometria tvorená minimálnymi a maximálnymi (X, Y) súradnicami:
          • Kvalita bytia jednoduché alebo nie jednoduché. Geometrické hodnoty niektorých typov (LineString, MultiPoint, MultiLineString) sú buď jednoduché, alebo nie sú jednoduché. Každý typ určuje svoje vlastné tvrdenia o jednoduchosti alebo jednoduchosti.
          • Kvalita bytia zatvorené alebo nie je uzavretý. Geometrické hodnoty niektorých typov (LineString, MultiString) sú buď zatvorené, alebo nie sú zatvorené. Každý typ určuje svoje vlastné tvrdenia, či sú zatvorené alebo nie.
          • Kvalita bytia prázdny alebo nie prázdny Geometria je prázdna, ak nemá žiadne body. Exteriér, interiér a hranica prázdnej geometrie nie sú definované (to znamená, že sú reprezentované hodnotou NULL). Prázdna geometria je definovaná ako vždy jednoduchá a má plochu 0.
          • Jeho rozmer. Geometria môže mať rozmer -1, 0, 1 alebo 2:
            • -1 znamená prázdne geometrie.
            • 0 znamená geometriu bez dĺžky a bez plochy.
            • 1 znamená geometriu s nenulovou dĺžkou a nulovou plochou.
            • 2 znamená geometriu s nenulovou plochou.

            Bod je geometria, ktorá predstavuje jedno miesto v súradnicovom priestore.

            17.2.5 Príklady bodov

            • Predstavte si rozsiahlu mapu sveta s mnohými mestami. Bod môže predstavovať každé mesto.
            • Na mape mesta by bod mohol predstavovať autobusovú zastávku.

            17.2.6 Vlastnosti bodu

            • Hodnota súradnice X.
            • Hodnota súradnice Y.
            • Bod je definovaný ako geometria nulového rozmeru.
            • Hranicou bodu je prázdna množina.

            Krivka je jednorozmerná geometria, zvyčajne reprezentovaná postupnosťou bodov. Jednotlivé podtriedy krivky definujú typ interpolácie medzi bodmi. Curve je neaktualizovateľná trieda.

            17.2.8 Vlastnosti krivky

            • Súradnice jeho bodov.
            • Krivka je definovaná ako jednorozmerná geometria.
            • Krivka je jednoduchá, ak neprechádza dvakrát rovnakým bodom.
            • Krivka je uzavretá, ak sa jej počiatočný bod rovná koncovému bodu.
            • Hranica uzavretej krivky je prázdna.
            • Hranica neuzavretej krivky pozostáva z jej dvoch koncových bodov.
            • Krivka, ktorá je jednoduchá a uzavretá, je lineárny krúžok.

            LineString je krivka s lineárnou interpoláciou medzi bodmi.

            17.2.10 Príklady reťazca

            • Na mape sveta by objekty LineString mohli predstavovať rieky.
            • Na mape mesta by objekty LineString mohli predstavovať ulice.

            17.2.11 Vlastnosti reťazca riadka

            • Súradnice segmentov LineString definované každou po sebe nasledujúcou dvojicou bodov.
            • LineString je čiara, ak pozostáva presne z dvoch bodov.
            • LineString je LinearRing, ak je uzavretý a jednoduchý.

            Povrch je dvojrozmerná geometria. Jedná sa o triedu, ktorú nemožno vytvoriť. Jeho jedinou podtriedou, ktorú je možné vytvoriť, je mnohouholník.

            17.2.13 Vlastnosti povrchu

            • Povrch je definovaný ako dvojrozmerná geometria.
            • Špecifikácia OpenGIS definuje jednoduchý povrch ako geometriu, ktorá pozostáva z jednej „záplaty“, ktorá je spojená s jednou vonkajšou hranicou a nulovou alebo viacerými vnútornými hranicami.
            • Hranica jednoduchého povrchu je množina uzavretých kriviek zodpovedajúcich jeho vonkajším a vnútorným hraniciam.

            Polygón je rovinný povrch, ktorý predstavuje mnohostrannú geometriu. Je definovaná jednou vonkajšou hranicou a nulovou alebo viacerými vnútornými hranicami, kde každá vnútorná hranica definuje otvor v mnohouholníku.

            17.2.15 Príklady mnohouholníkov

            17.2.16 Tvrdenia mnohouholníka

            • Hranica mnohouholníka pozostáva zo sady objektov LinearRing (to znamená, že objekty LineString sú jednoduché aj uzavreté), ktoré tvoria jeho vonkajšie a vnútorné hranice.
            • V hraničnom kríži nie sú žiadne dva prstene. Krúžky na hranici mnohouholníka sa môžu pretínať v bode, ale iba ako dotyčnica.
            • Polygón nesmie mať prerušené čiary, hroty alebo dierovanie.
            • Interiér každého mnohouholníka je spojená množina bodov.
            • Exteriér mnohouholníka s jedným alebo viacerými otvormi nie je spojený. Každý otvor definuje spojený komponent exteriéru.

            Vo vyššie uvedených tvrdeniach sú polygóny jednoduchými geometriami. Tieto tvrdenia robia z mnohouholníka jednoduchú geometriu.

            Kolekcia GeometryCollection je geometria, ktorá je kolekciou jednej alebo viacerých geometrií akejkoľvek triedy.

            Všetky prvky v kolekcii GeometryCollection musia byť v tom istom priestorovom referenčnom systéme (to znamená v tom istom súradnicovom systéme). GeometryCollection nekladie na svoje prvky žiadne ďalšie obmedzenia, aj keď podtriedy GeometryCollection popísané v nasledujúcich častiach môžu členstvo obmedzovať. Obmedzenia môžu byť založené na:

            • Typ prvku (napríklad bod MultiPoint môže obsahovať iba prvky bodu)
            • Rozmer
            • Obmedzenia stupňa priestorového prekrývania prvkov

            MultiPoint je zbierka geometrie zložená z bodových prvkov. Body nie sú nijako spojené ani objednané.

            17.2.19 Príklady MultiPoint

            • Na mape sveta by Multipoint mohol predstavovať reťaz malých ostrovov.
            • Na mape mesta by Multipoint mohol predstavovať predajné miesta pre pokladne.

            17.2.20 Vlastnosti MultiPoint

            • MultiPoint je definovaný ako geometria nulového rozmeru.
            • MultiPoint je jednoduchý, ak nie sú žiadne dve z jeho bodových hodnôt rovnaké (majú rovnaké hodnoty súradníc).
            • Hranicou MultiPointu je prázdna množina.

            MultiCurve je kolekcia geometrií zložená z prvkov Curve. MultiCurve je trieda, ktorú nemožno vytvoriť.

            17.2.22 Vlastnosti MultiCurve

            • MultiCurve je definovaná ako jednorozmerná geometria.
            • MultiCurve je jednoduchá vtedy, ak sú všetky jej prvky jednoduché, jediné priesečníky medzi akýmikoľvek dvoma prvkami sa vyskytujú v bodoch, ktoré sa nachádzajú na hraniciach oboch prvkov.
            • Hranica MultiCurve sa získa použitím „pravidla odboru mod 2“ (známeho tiež ako pravidlo nepárnych párnych): Bod je na hranici MultiCurve, ak je v hraniciach nepárneho počtu MultiCurve prvky.
            • MultiCurve je zatvorený, ak sú zatvorené všetky jeho prvky.
            • Hranica uzavretej MultiCurve je vždy prázdna.

            MultiLineString je kolekcia geometrií MultiCurve zložená z prvkov LineString.

            17.2.24 Príklady MultiLineString

            MultiSurface je zbierka geometrie zložená z povrchových prvkov. MultiSurface je trieda, ktorú nemožno vytvoriť. Jeho jedinou podtriedou, ktorú je možné vytvoriť, je MultiPolygon.

            17.2.26 Tvrdenia viacerých povrchov

            • Interiéry akýchkoľvek dvoch povrchov v MultiSurface sa nemusia krížiť.
            • Hranice akýchkoľvek dvoch prvkov v MultiSurface sa môžu pretínať nanajvýš v konečnom počte bodov.

            MultiPolygon je objekt MultiSurface zložený z prvkov mnohouholníka.

            17.2.28 Príklady MultiPolygon

            17.2.29 Tvrdenia MultiPolygon

            • Interiéry dvoch hodnôt mnohouholníka, ktoré sú prvkami viacnásobného polygónu, sa nemusia pretínať.
            • Hranice akýchkoľvek dvoch hodnôt mnohouholníka, ktoré sú prvkami viacnásobného polygónu, sa nesmú prekročiť a môžu sa dotýkať iba konečného počtu bodov. (Prekračovanie je tiež zakázané v predchádzajúcom tvrdení.)
            • MultiPolygon nesmie mať prerušené čiary, hroty alebo prerazenie. MultiPolygon je pravidelná, uzavretá množina bodov.
            • Interiér programu MultiPolygon zloženého z viac ako jedného mnohouholníka nie je prepojený. Počet prepojených komponentov interiéru MultiPolygonu sa rovná počtu hodnôt mnohouholníka v MultiPolygone.

            17.2.30 Vlastnosti MultiPolygon

            • MultiPolygon je definovaný ako dvojrozmerná geometria.
            • Hranica MultiPolygonu je sada uzavretých kriviek (hodnoty LineString) zodpovedajúcich hraniciam jej mnohouholníkových prvkov.
            • Každá krivka na hranici viacnásobného polygónu je na hranici presne jedného prvku mnohouholníka.
            • Každá krivka na hranici prvku mnohouholníka je na hranici viacnásobného polygónu.

            Táto časť popisuje štandardné formáty priestorových údajov, ktoré sa používajú na reprezentáciu geometrických objektov v dotazoch. Oni sú:

            MySQL interne ukladá hodnoty geometrie vo formáte, ktorý nie je identický s formátom WKT ani WKB.

            Reprezentácia geometrie dobre známym textom (WKT) je navrhnutá na výmenu geometrických údajov vo forme ASCII.

            Príklady WKT reprezentácií geometrických objektov sú:

            • Bod: Všimnite si, že súradnice bodu sú uvedené bez oddeľujúcej čiarky.
            • LineString so štyrmi bodmi:
            • Polygón s jedným vonkajším a jedným vnútorným krúžkom:
            • MultiPoint s tromi bodovými hodnotami:
            • MultiLineString s dvoma hodnotami LineString:
            • MultiPolygon s dvoma hodnotami polygónu:
            • Kolekcia GeometryCollection pozostávajúca z dvoch bodových hodnôt a jedného LineString:

            Gramatika Backus-Naur, ktorá špecifikuje formálne produkčné pravidlá pre zápis hodnôt WKT, sa nachádza v špecifikačnom dokumente OGC, na ktorý sa odkazuje na začiatku tejto kapitoly.

            Dobre známa binárna (WKB) reprezentácia geometrických hodnôt je definovaná špecifikáciami OpenGIS. Je tiež definovaný v norme ISO „SQL/MM Časť 3: Priestorové“.

            WKB sa používa na výmenu geometrických údajov ako binárne toky reprezentované hodnotami BLOB obsahujúcimi geometrické informácie WKB.

            WKB používa 1-bajtové celé čísla bez znamienka, 4-bajtové celé čísla bez znamienka a 8-bajtové čísla s dvojitou presnosťou (formát IEEE 754). Bajt je 8 bitov.

            Napríklad hodnota WKB, ktorá zodpovedá BODU (1 1), pozostáva z tejto postupnosti 21 bajtov (každý tu reprezentovaný dvoma hexadecimálnymi číslicami):

            Sekvenciu je možné rozdeliť na tieto komponenty:

            Reprezentácia komponentov je nasledovná:

            • Poradie bajtov môže byť buď 0 alebo 1, čo označuje úložisko small-endian alebo big-endian. Small-endianové a big-endianové bajtové poradie sú tiež známe ako reprezentácia sieťových údajov (NDR) a externé dátové zastúpenie (XDR).
            • Typ WKB je kód, ktorý označuje typ geometrie. Hodnoty od 1 do 7 označujú Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon a GeometryCollection.
            • Bodová hodnota má súradnice X a Y, pričom každá je reprezentovaná hodnotou s dvojitou presnosťou.

            Hodnoty WKB pre komplexnejšie hodnoty geometrie sú reprezentované komplexnejšími dátovými štruktúrami, ako je podrobne uvedené v špecifikácii OpenGIS.

            Táto časť popisuje typy údajov, ktoré môžete použiť na reprezentáciu priestorových údajov v MySQL, a funkcie dostupné na vytváranie a získavanie priestorových hodnôt.

            MySQL poskytuje množinu dátových typov, ktoré zodpovedajú triedam v hierarchii tried modelu Geometry OpenGIS. Niektoré z týchto typov obsahujú hodnoty jednej geometrie:

            GEOMETRIA je najbežnejšou z týchto typov s jednou hodnotou, môže ukladať hodnoty geometrie akéhokoľvek typu. Ostatní obmedzujú svoje hodnoty na konkrétny typ geometrie.

            Ostatné typy údajov obsahujú zbierky hodnôt:

            GEOMETRYCOLLECTION môže ukladať zbierku predmetov akéhokoľvek typu. Ostatné typy kolekcií obmedzujú členy kolekcie na tie, ktoré majú konkrétny typ geometrie.

            Táto časť popisuje, ako vytvárať priestorové hodnoty pomocou dobre známych textových a dobre známych binárnych funkcií, ktoré sú definované v štandarde OpenGIS, a pomocou funkcií špecifických pre MySQL.

            MySQL poskytuje množstvo funkcií, ktoré ako vstupné parametre berú reprezentáciu dobre známeho textu (a voliteľne identifikátor priestorového referenčného systému (SRID)) a vracajú zodpovedajúcu geometriu.

            GeomFromText () prijíma ako prvý argument WKT akéhokoľvek typu geometrie. Implementácia tiež poskytuje konštrukčné funkcie špecifické pre typ na konštrukciu hodnôt geometrie každého typu geometrie.

            GeomFromText (wkt [, srid]) GeometryFromText (wkt [, srid]) Vytvorí hodnotu geometrie akéhokoľvek typu pomocou svojej reprezentácie WKT a SRID. PointFromText (wkt [, srid]) Vytvorí hodnotu POINT pomocou svojej reprezentácie WKT a SRID. LineFromText (wkt [, srid]) LineStringFromText (wkt [, srid]) Vytvorí hodnotu LINESTRING pomocou svojej reprezentácie WKT a SRID. PolyFromText (wkt [, srid]) PolygonFromText (wkt [, srid]) Vytvorí hodnotu POLYGON pomocou svojej reprezentácie WKT a SRID. MPointFromText (wkt [, srid]) MultiPointFromText (wkt [, srid]) Vytvorí hodnotu MULTIPOINT pomocou svojej reprezentácie WKT a SRID. MLineFromText (wkt [, srid]) MultiLineStringFromText (wkt [, srid]) Vytvorí hodnotu MULTILINESTRING pomocou svojej reprezentácie WKT a SRID. MPolyFromText (wkt [, srid]) MultiPolygonFromText (wkt [, srid]) Vytvorí hodnotu MULTIPOLYGONU pomocou svojej reprezentácie WKT a SRID. GeomCollFromText (wkt [, srid]) GeometryCollectionFromText (wkt [, srid]) Vytvorí hodnotu GEOMETRYCOLLECTION pomocou svojej reprezentácie WKT a SRID.

            Špecifikácia OpenGIS tiež popisuje voliteľné funkcie na konštrukciu hodnôt mnohouholníka alebo viacpolygónu na základe reprezentácie WKT zbierky krúžkov alebo uzavretých hodnôt LineString. Tieto hodnoty sa môžu pretínať. MySQL zatiaľ neimplementuje tieto funkcie:

            BdPolyFromText (wkt, srid) Vytvorí hodnotu mnohouholníka z hodnoty MultiLineString vo formáte WKT obsahujúcu ľubovoľnú zbierku uzavretých hodnôt LineString. BdMPolyFromText (wkt, srid) Vytvorí hodnotu MultiPolygon z hodnoty MultiLineString vo formáte WKT obsahujúcu ľubovoľnú zbierku uzavretých hodnôt LineString.

            MySQL poskytuje množstvo funkcií, ktoré ako vstupné parametre berú BLOB obsahujúci dobre známu binárnu reprezentáciu (a voliteľne identifikátor priestorového referenčného systému (SRID)) a vracajú zodpovedajúcu geometriu.

            GeomFromWKT () prijíma ako prvý argument WKB akéhokoľvek typu geometrie. Implementácia tiež poskytuje konštrukčné funkcie špecifické pre typ na konštrukciu hodnôt geometrie každého typu geometrie.

            GeomFromWKB (wkb [, srid]) GeometryFromWKB (wkt [, srid]) Vytvorí hodnotu geometrie akéhokoľvek typu pomocou svojej reprezentácie WKB a SRID. PointFromWKB (wkb [, srid]) Vytvorí hodnotu POINT pomocou svojej reprezentácie WKB a SRID. LineFromWKB (wkb [, srid]) LineStringFromWKB (wkb [, srid]) Vytvorí hodnotu LINESTRING pomocou svojej reprezentácie WKB a SRID. PolyFromWKB (wkb [, srid]) PolygonFromWKB (wkb [, srid]) Vytvorí hodnotu POLYGON pomocou svojej reprezentácie WKB a SRID. MPointFromWKB (wkb [, srid]) MultiPointFromWKB (wkb [, srid]) Vytvorí hodnotu MULTIPOINT pomocou svojej reprezentácie WKB a SRID. MLineFromWKB (wkb [, srid]) MultiLineStringFromWKB (wkb [, srid]) Vytvorí hodnotu MULTILINESTRING pomocou svojej reprezentácie WKB a SRID. MPolyFromWKB (wkb [, srid]) MultiPolygonFromWKB (wkb [, srid]) Vytvorí hodnotu MULTIPOLYGON pomocou svojej reprezentácie WKB a SRID. GeomCollFromWKB (wkb [, srid]) GeometryCollectionFromWKB (wkt [, srid]) Vytvorí hodnotu GEOMETRYCOLLECTION pomocou svojej reprezentácie WKB a SRID.

            Špecifikácia OpenGIS tiež popisuje voliteľné funkcie na konštrukciu hodnôt mnohouholníka alebo viacpolygónu na základe reprezentácie WKB zbierky krúžkov alebo uzavretých hodnôt LineString. Tieto hodnoty sa môžu pretínať. MySQL zatiaľ neimplementuje tieto funkcie:

            BdPolyFromWKB (wkb, srid) Vytvorí hodnotu mnohouholníka z hodnoty MultiLineString vo formáte WKB obsahujúcu ľubovoľnú zbierku uzavretých hodnôt LineString. BdMPolyFromWKB (wkb, srid) Vytvorí hodnotu MultiPolygon z hodnoty MultiLineString vo formáte WKB obsahujúcu ľubovoľnú zbierku uzavretých hodnôt LineString.

            Poznámka: MySQL zatiaľ neimplementuje funkcie uvedené v tejto časti.

            MySQL poskytuje sadu užitočných funkcií na vytváranie reprezentácií geometrie WKB. Funkcie popísané v tejto časti sú rozšíreniami MySQL k špecifikáciám OpenGIS. Výsledkom týchto funkcií sú hodnoty BLOB obsahujúce reprezentácie geometrických hodnôt WKB bez SRID. Výsledky týchto funkcií je možné nahradiť ako prvý argument pre akúkoľvek funkciu z rodiny funkcií GeomFromWKB ().

            Bod (x, y) Vytvorí bod WKB pomocou svojich súradníc. MultiPoint (pt1, pt2.) Vytvorí hodnotu WKB MultiPoint pomocou argumentov bodu WKB. Ak niektorý argument nie je WKBPoint, návratová hodnota je NULL. LineString (pt1, pt2.) Vytvorí hodnotu WKB LineString z množstva argumentov bodu WKB. Ak niektorý argument nie je bodom WKB, návratová hodnota je NULL. Ak je počet argumentov bodu menší ako dva, návratová hodnota je NULL. MultiLineString (ls1, ls2.) Vytvorí hodnotu WKB MultiLineString pomocou argumentov WBK LineString. Ak niektorý argument nie je LineString, návratová hodnota je NULL. Polygón (ls1, ls2.) Vytvorí hodnotu polygónu WKB z množstva argumentov WKB LineString.Ak niektorý z argumentov nereprezentuje WKB LinearRing (to znamená, že nie je uzavretým a jednoduchým LineStringom), návratová hodnota je NULL. MultiPolygon (poly1, poly2.) Vytvorí hodnotu WKB MultiPolygon zo sady argumentov polygónu WKB. Ak niektorý argument nie je polygónom WKB, hodnota vrátenia je NULL. GeometryCollection (g1, g2.) Vytvára kolekciu WKB GeometryCollection. Ak niektorý z argumentov nie je dobre vytvorenou WKB reprezentáciou geometrie, návratová hodnota je NULL.

            MySQL poskytuje štandardný spôsob vytvárania priestorových stĺpcov pre typy geometrie, napríklad pomocou CREATE TABLE alebo ALTER TABLE. V súčasnosti sú priestorové stĺpce podporované iba pre tabuľky MyISAM.

            • Pomocou príkazu CREATE TABLE vytvorte tabuľku s priestorovým stĺpcom:
            • Na pridanie alebo zrušenie priestorového stĺpca do alebo z existujúcej tabuľky použite príkaz ALTER TABLE:

            Keď vytvoríte priestorové stĺpce, môžete ich naplniť priestorovými údajmi.

            Hodnoty by mali byť uložené vo formáte vnútornej geometrie, ale môžete ich do tohto formátu previesť buď z formátu dobre známeho textu (WKT) alebo dobre známeho binárneho (WKB). Nasledujúce príklady ukazujú, ako vložiť hodnoty geometrie do tabuľky prevodom hodnôt WKT do formátu vnútornej geometrie.

            Konverziu môžete vykonať priamo vo výkaze INSERT:

            Alebo sa konverzia môže uskutočniť pred VLOŽENÍM:

            Nasledujúce príklady vkladajú do tabuľky zložitejšie geometrie:

            Všetky predchádzajúce príklady používajú na vytváranie hodnôt geometrie GeomFromText (). Môžete tiež použiť funkcie špecifické pre typ:

            Upozorňujeme, že ak chce klientský aplikačný program používať reprezentácie geometrických hodnôt WKB, je zodpovedný za odosielanie správne vytvorených WKB v dotazoch na server. Existuje však niekoľko spôsobov, ako splniť túto požiadavku. Napríklad:

            • Vkladanie hodnoty POINT (1 1) so syntaxou doslovného hexadecimálu:
            • Aplikácia ODBC môže odosielať reprezentáciu WKB a viazať ju na zástupný symbol pomocou argumentu typu BLOB: Podobný mechanizmus zástupného symbolu môže podporovať aj iné programovacie rozhrania.
            • V programe C môžete uniknúť binárnej hodnote pomocou mysql_real_escape_string () a výsledok zahrnúť do reťazca dotazu, ktorý sa odošle na server. Pozrite si časť 19.1.3.44 mysql_real_escape_string ().

            Geometrické hodnoty uložené v tabuľke je možné načítať s konverziou vo vnútornom formáte. Môžete ich tiež previesť do formátu WKT alebo WKB.

            Načítanie hodnôt geometrie pomocou interného formátu môže byť užitočné pri prenosoch z tabuľky do tabuľky:

            Funkcia AsText () poskytuje textový prístup k hodnotám geometrie. Konvertuje geometriu z interného formátu na reťazec WKT.

            Funkcia AsBinary () poskytuje binárny prístup k hodnotám geometrie. Konvertuje geometriu z interného formátu na BLOB obsahujúci hodnotu WKB.

            Po vyplnení priestorových stĺpcov hodnotami ste pripravení ich zadať a analyzovať. MySQL poskytuje sadu funkcií na vykonávanie rôznych operácií s priestorovými údajmi. Tieto funkcie je možné rozdeliť do štyroch hlavných kategórií podľa typu operácie, ktorú vykonávajú:

            • Funkcie, ktoré prevádzajú geometriu medzi rôznymi formátmi
            • Funkcie, ktoré poskytujú prístup ku kvalitatívnym alebo kvantitatívnym vlastnostiam geometrie
            • Funkcie, ktoré opisujú vzťahy medzi dvoma geometriami
            • Funkcie, ktoré vytvárajú nové geometrie z existujúcich

            Funkcie priestorovej analýzy je možné použiť v mnohých kontextoch, ako napríklad:

            • Akýkoľvek interaktívny program SQL, ako napríklad mysql alebo MySQLCC
            • Aplikačné programy napísané v akomkoľvek jazyku, ktorý podporuje klientske API MySQL

            MySQL podporuje nasledujúce funkcie na prevod hodnôt geometrie medzi interným formátom a formátom WKT alebo WKB:

            GeomFromText (wkt [, srid]) Skonvertuje reťazcovú hodnotu zo svojej reprezentácie WKT do formátu vnútornej geometrie a vráti výsledok. Podporovaných je aj množstvo funkcií špecifických pre typ, ako napríklad PointFromText () a LineFromText (), pozri časť 17.4.2.1 Vytváranie hodnôt geometrie pomocou funkcií WKT. GeomFromWKB (wkb [, srid]) Skonvertuje binárnu hodnotu zo svojej reprezentácie WKB do formátu vnútornej geometrie a vráti výsledok. Podporovaných je aj množstvo funkcií špecifických pre typ, ako napríklad PointFromWKB () a LineFromWKB (), pozri časť 17.4.2.2 Vytváranie hodnôt geometrie pomocou funkcií WKB. AsText (g) Konvertuje hodnotu vo formáte vnútornej geometrie na jej reprezentáciu WKT a vráti výsledný reťazec. AsBinary (g) Konvertuje hodnotu vo formáte vnútornej geometrie na jej reprezentáciu WKB a vráti výslednú binárnu hodnotu.

            Každá funkcia, ktorá patrí do tejto skupiny, berie ako argument hodnotu geometrie a vracia nejakú kvantitatívnu alebo kvalitatívnu vlastnosť geometrie. Niektoré funkcie obmedzujú typ argumentu. Takéto funkcie vrátia hodnotu NULL, ak je argument nesprávneho typu geometrie. Napríklad Area () vráti NULL, ak typ objektu nie je ani mnohouholníkový, ani viacpolygónový.

            Funkcie uvedené v tejto sekcii neobmedzujú ich argument a akceptujú hodnotu geometrie akéhokoľvek typu.

            GeometryType (g) Vracia ako reťazec názov typu geometrie, ktorého je inštancia geometrie g členom. Názov bude zodpovedať jednej z podtried okamžitej geometrie. Dimenzia (g) Vráti inherentnú dimenziu hodnoty geometrie g. Výsledok môže byť -1, 0, 1 alebo 2. (Význam týchto hodnôt je uvedený v časti 17.2.2 Triedna geometria.) SRID (g) Vráti celé číslo označujúce ID priestorového referenčného systému pre hodnotu geometrie g. Obálka (g) Vráti minimálny ohraničujúci obdĺžnik (MBR) pre hodnotu geometrie g. Výsledok sa vráti ako hodnota mnohouholníka. Polygón je definovaný rohovými bodmi ohraničujúceho rámčeka:

            Špecifikácia OpenGIS definuje aj nasledujúce funkcie, ktoré MySQL zatiaľ neimplementuje:

            Hranica (g) Vráti geometriu, ktorá je uzatvorením kombinatorickej hranice hodnoty geometrie g. IsEmpty (g) Vráti 1, ak je geomtry hodnotou g prázdna geometria, 0, ak nie je prázdna, a -1, ak je argument NULL. Ak je geometria prázdna, predstavuje množinu prázdnych bodov. IsSimple (g) V súčasnosti je táto funkcia zástupným symbolom a nemala by sa používať. Po implementácii bude jeho správanie rovnaké, ako je popísané v nasledujúcom odseku. Vráti hodnotu 1, ak hodnota geometrie g nemá žiadne anomálne geometrické body, ako napríklad vlastné priesečníky alebo vlastné dotyky. IsSimple () vráti 0, ak argument nie je jednoduchý, a -1, ak je NULL. Opis každej instabilnej geometrickej triedy uvedený vyššie v tejto kapitole obsahuje špecifické podmienky, ktoré spôsobujú, že inštancia tejto triedy je klasifikovaná ako nekomplikovaná.

            Bod pozostáva zo súradníc X a Y, ktoré je možné získať pomocou nasledujúcich funkcií:

            X (p) Vráti hodnotu súradnice X pre bod p ako číslo s dvojnásobnou presnosťou. Y (p) Vráti hodnotu súradnice Y pre bod p ako číslo s dvojnásobnou presnosťou.

            LineString pozostáva z bodových hodnôt. Môžete extrahovať konkrétne body reťazca LineString, spočítať počet bodov, ktoré obsahuje, alebo získať jeho dĺžku.

            EndPoint (ls) Vráti bod, ktorý je koncovým bodom hodnoty LineString hodnoty ls. GLength (ls) Vracia ako číslo s dvojnásobnou presnosťou dĺžku hodnoty LineString ls v jej priradenej priestorovej referencii. IsClosed (ls) Vráti 1, ak je hodnota LineString ls zatvorená (to znamená, že hodnoty StartPoint () a EndPoint () sú rovnaké). Vráti 0, ak ls nie je zatvorené, a -1, ak je NULL. NumPoints (ls) Vráti počet bodov v hodnote LineString ls. PointN (ls, n) Vráti n -tý bod v hodnote Linestring ls. Čísla bodov začínajú na 1. StartPoint (ls) Vráti bod, ktorý je počiatočným bodom hodnoty LineString hodnoty ls.

            Špecifikácia OpenGIS definuje aj nasledujúcu funkciu, ktorú MySQL zatiaľ neimplementuje:

            IsRing (ls) Vráti hodnotu 1, ak je hodnota LineString ls uzavretá (to znamená, že hodnoty StartPoint () a EndPoint () sú rovnaké) a je jednoduchá (neprechádza rovnakým bodom viackrát). Vráti 0, ak ls nie je prsteň, a -1, ak je NULL.

            Špecifikácia OpenGIS definuje aj nasledujúce funkcie, ktoré MySQL zatiaľ neimplementuje:

            Ťažisko (poly) Vráti matematický ťažisko pre hodnotu polygónu ako bod. Výsledok nie je zaručený na polygóne. PointOnSurface (poly) Vracia bodovú hodnotu, ktorá je zaručene na polygóne s hodnotou polygónu.

            Špecifikácia OpenGIS definuje aj nasledujúce funkcie, ktoré MySQL zatiaľ neimplementuje:

            Ťažisko (mpoly) Vráti matematický ťažisko pre hodnotu mPoly MultiPolygon ako bod. Výsledok nie je zaručený na MultiPolygon. PointOnSurface (mpoly) Vráti bodovú hodnotu, ktorá je zaručene na hodnote mPoly MultiPolygon.

            V sekcii 17.5.2 Geometrické funkcie sme už diskutovali o niektorých funkciách, ktoré môžu vytvárať nové geometrie z existujúcich:

            • Obálka (g)
            • StartPoint (ls)
            • EndPoint (ls)
            • PointN (ls, n)
            • Vonkajší krúžok (poly)
            • InteriorRingN (poly, n)
            • GeometriaN (gc, n)

            OpenGIS ponúka množstvo ďalších funkcií, ktoré môžu vytvárať geometrie. Sú navrhnuté tak, aby implementovali priestorové operátory.

            Tieto funkcie ešte nie sú implementované v MySQL. Mali by sa objaviť v budúcich vydaniach.

            Intersection (g1, g2) Vracia geometriu, ktorá predstavuje priesečník hodnôt geometrie g1 s g2 množinou bodov. Spojenie (g1, g2) Vracia geometriu, ktorá predstavuje zjednotenie hodnôt geometrie g1 a g2 v množine bodov. Difference (g1, g2) Vráti geometriu, ktorá predstavuje bodový rozdiel hodnoty geometrie g1 s g2. SymDifference (g1, g2) Vracia geometriu, ktorá predstavuje symetrický rozdiel množiny bodov hodnoty geometrie g1 s g2. Buffer (g, d) Vráti geometriu, ktorá predstavuje všetky body, ktorých vzdialenosť od hodnoty geometrie g je menšia alebo rovná vzdialenosti d. ConvexHull (g) Vráti geometriu, ktorá predstavuje konvexný trup hodnoty geometrie g.

            Funkcie popísané v týchto častiach berú ako vstupné parametre dve geometrie a vracajú medzi nimi kvalitatívny alebo kvantitatívny vzťah.

            MySQL poskytuje niektoré funkcie, ktoré môžu testovať vzťahy medzi minimálnymi ohraničovacími obdĺžnikmi dvoch geometrií g1 a g2. Patria sem:

            MBRContains (g1, g2) Vráti 1 alebo 0, aby označil, či minimálny ohraničovací obdĺžnik g1 obsahuje minimálny ohraničujúci obdĺžnik g2. MBRWithin (g1, g2) Vráti 1 alebo 0, aby označil, či je minimálny ohraničovací obdĺžnik g1 v medziach minimálneho ohraničujúceho obdĺžnika g2. MBRDisjoint (g1, g2) Vráti 1 alebo 0, aby indikoval, či sú minimálne ohraničujúce obdĺžniky dvoch geometrií g1 a g2 nesúvislé (nepretínajú sa). MBREquals (g1, g2) Vráti 1 alebo 0, aby označil, či sú minimálne obdĺžniky pre ohraničenie dvoch geometrií g1 a g2 rovnaké. MBRIntersects (g1, g2) Vráti 1 alebo 0, aby označil, či sa minimálne obdĺžniky ohraničenia dvoch geometrií g1 a g2 pretínajú alebo nie. MBROverlaps (g1, g2) Vráti 1 alebo 0, aby označil, či sa minimálne obdĺžniky ohraničenia dvoch geometrií g1 a g2 prekrývajú alebo nie. MBRTouch (g1, g2) Vráti 1 alebo 0, aby označil, či sa minimálne obdĺžniky ohraničenia dvoch geometrií g1 a g2 dotýkajú alebo nie.

            Špecifikácia OpenGIS definuje nasledujúce funkcie, ktoré MySQL zatiaľ neimplementuje. Mali by sa objaviť v budúcich vydaniach. Keď budú implementované, budú poskytovať plnú podporu priestorovej analýzy, nielen podporu založenú na MBR.

            Funkcie fungujú s dvoma hodnotami geometrie g1 a g2.

            • Obe geometrie sa pretínajú
            • Výsledkom ich priesečníka je geometria, ktorá má rozmer, ktorý je o jeden menší ako maximálny rozmer dvoch daných geometrií
            • Ich priesečník sa nerovná žiadnej z dvoch daných geometrií

            Je známe, že operácie vyhľadávania v mimopriestorových databázach je možné optimalizovať pomocou indexov. To platí aj pre priestorové databázy. S pomocou širokej škály metód viacdimenzionálneho indexovania, ktoré už boli navrhnuté, je možné optimalizovať priestorové vyhľadávanie. Najtypickejšie z nich sú tieto:

            • Bodové dotazy, ktoré vyhľadávajú všetky objekty, ktoré obsahujú daný bod
            • Regionálne dotazy, ktoré vyhľadávajú všetky objekty, ktoré sa prekrývajú s danou oblasťou

            MySQL využíva R-stromy s kvadratickým delením indexovať priestorové stĺpce. Priestorový index je zostavený pomocou MBR geometrie. Pre väčšinu geometrií je MBR minimálnym obdĺžnikom, ktorý obklopuje geometrie. V prípade horizontálnej alebo vertikálnej vložky je MBR obdĺžnik zdegenerovaný do čiary. Pre bod je MBR obdĺžnik degenerovaný do bodu.

            MySQL môže vytvárať priestorové indexy pomocou syntaxe podobnej tej, ktorá sa používa na vytváranie bežných indexov, ale je rozšírená o kľúčové slovo SPATIAL. Priestorové stĺpce, ktoré sú v súčasnosti indexované, musia byť deklarované ako NIE NULL. Nasledujúce príklady ukazujú, ako vytvárať priestorové indexy.

            Na zrušenie priestorových indexov použite ALTER TABLE alebo DROP INDEX:

            Príklad: Predpokladajme, že tabuľkový geom obsahuje viac ako 32 000 geometrií, ktoré sú uložené v stĺpci g typu GEOMETRIA. Tabuľka má tiež stĺpec fid AUTO_INCREMENT na ukladanie hodnôt ID objektu.

            Ak chcete do stĺpca g pridať priestorový index, použite tento príkaz:

            Optimalizátor zisťuje, či je možné do hľadania dotazov, ktoré používajú funkciu ako MBRContains () alebo MBRWithin () v klauzule WHERE, zahrnúť dostupné priestorové indexy. Povedzme napríklad, že chceme nájsť všetky objekty, ktoré sa nachádzajú v danom obdĺžniku:

            Teraz pomocou EXPLAIN skontrolujeme spôsob vykonania tohto dotazu:

            Teraz sa pozrime, čo by sa stalo, keby sme nemali priestorový index:

            Vykonajme vyššie uvedený dotaz, pričom ignorujeme priestorový kľúč, ktorý máme:

            Ak sa index nepoužíva, doba vykonania tohto dotazu sa zvýši z 0,00 sekundy na 0,46 sekundy.

            V budúcich vydaniach budú priestorové indexy použité aj na optimalizáciu ďalších funkcií. Pozrite si časť 17.5.4 Funkcie na testovanie priestorových vzťahov medzi geometrickými objektmi.


            Prázdne geometrie v GEOMETRYCOLLECTION - geografické informačné systémy

            Vo verzii 4.1 MySQL predstavuje priestorové rozšírenia, ktoré umožňujú generovanie, ukladanie a analýzu geografických funkcií.

            Geografickým prvkom je čokoľvek na svete, ktoré má polohu.

            • Entita. Napríklad hora, rybník, mesto.
            • Priestor. Napríklad oblasť PSČ, trópy.
            • Definovateľné miesto. Napríklad križovatka ako konkrétne miesto, kde sa križujú dve ulice.

            Môžete tiež nájsť dokumenty, ktoré na označenie geografických prvkov používajú výraz geopriestorová funkcia.

            Geometria je ďalšie slovo, ktoré označuje geografický prvok. Pôvodný význam slova geometria označuje odvetvie matematiky. Ďalší význam, ktorý pochádza z kartografie, s odkazom na geometrické prvky, ktoré kartografi používajú na mapovanie sveta.

            Budeme mať na mysli to isté s použitím všetkých týchto výrazov, geografického prvku alebo geopriestorového prvku alebo prvku alebo geometrie, pričom v tejto dokumentácii je geometria najpoužívanejšia.

            Definujme geometriu ako bod alebo súhrn bodov predstavujúci čokoľvek na svete, ktoré má polohu.

            MySQL implementuje priestorové rozšírenia podľa špecifikácií OpenGIS.

            OpenGIS Consortium (OGC) je medzinárodné konzorcium viac ako 250 spoločností, agentúr a univerzít, ktoré sa zúčastňujú na vývoji verejne dostupných koncepčných riešení, ktoré môžu byť užitočné pre všetky druhy aplikácií, ktoré spravujú priestorové údaje. Pozri http://www.opengis.org/.

            V roku 1997 konzorcium OpenGIS publikovalo špecifikácie jednoduchých funkcií OpenGIS (r) pre SQL, ktoré navrhujú niekoľko koncepčných spôsobov rozšírenia SQL RDBMS na podporu priestorových údajov. MySQL implementuje podmnožinu prostredia SQL s typmi geometrie navrhnutého OGC. Tento termín označuje prostredie SQL, ktoré bolo rozšírené o sadu typov geometrie. Stĺpec SQL s hodnotou geometrie je implementovaný ako stĺpec typu geometrie. Špecifikácie opisujú sadu typov geometrie SQL a funkcie pre tieto typy na vytváranie a analýzu hodnôt geometrie.

            Sada typov geometrie, navrhnutá prostredím OGC SQL s typmi geometrie, je založená na OpenGIS Geometry Model. V tomto modeli každý geometrický objekt:

            • je spojený s priestorovým referenčným systémom, ktorý popisuje súradnicový priestor, v ktorom je objekt definovaný.
            • patrí do nejakej triedy geometrie.
            • Geometria
              • Bod
              • Krivka
                • LineString
                  • Riadok
                  • LinearRing
                  • Mnohouholník
                  • MultiPoint
                  • MultiCurve
                    • MultiLineString
                    • MultiPolygon

                    Základnou triedou je geometria. Je to abstraktná (nie instantovateľná) trieda. Instantovateľné podtriedy geometrie sú obmedzené na nulové, jedno a dvojrozmerné geometrické objekty, ktoré existujú v dvojrozmernom súradnicovom priestore. Všetky triedy instabilnej geometrie sú definované tak, že platné inštancie triedy geometrie sú topologicky uzavreté (t.j. všetky definované geometrie obsahujú ich ohraničenie).

                    Základná trieda geometrie má podtriedy pre Point, Curve, Surface a GeometryCollection.

                    Krivka znamená 1-rozmerné objekty a má podtriedu LineString s podtriedami Line a LinearRing.

                    Surface je navrhnutý pre dvojrozmerné objekty a má podtriedu Polygón.

                    GeometryCollection má špecializované 0, 1 a dvojrozmerné triedy zbierok s názvom MultiPoint, MultiLineString a MultiPolygon na modelovanie geometrií zodpovedajúcich zbierkam bodov, čiar a reťazcov a mnohouholníkov. MultiCurve a MultiSurface sú predstavené ako abstraktné nadtriedy, ktoré zovšeobecňujú rozhrania kolekcie na spracovanie kriviek a povrchov.

                    Geometria, Curve, Surface, MultiCurve a MultiSurface sú definované ako neaktualizovateľné triedy, nie je možné vytvoriť objekt týchto tried. Definujú spoločný súbor metód pre svoje podtriedy a sú zahrnuté z dôvodu rozšíriteľnosti.

                    Point, LineString, Polygon, GeometryCollection, MultiPoint, MultiLineString, MultiPolygon sú triedy, ktoré je možné vytvárať (v strome hierarchie sú vyznačené tučným písmom).

                    Geometria je základnou triedou hierarchie. Každá geometria je charakterizovaná množstvom jej vlastností. Jednotlivé podtriedy koreňovej triedy geometrie majú svoje vlastné špecifické vlastnosti. Vlastnosti, ktoré sú spoločné pre všetky podtriedy geometrie, sú popísané v nasledujúcom zozname. Geometria je trieda, ktorú nemožno vytvoriť.

                    • Typ, ku ktorému patrí geometria. Každá geometria patrí do jednej z instanbilných tried v hierarchii.
                    • Je to jeho SRID, identifikátor priestorového referenčného systému asociovaného s geometriou, ktorý opisuje súradnicový priestor, v ktorom je definovaný geometrický objekt.
                    • Súradnice geometrie v jej priestorovom referenčnom systéme, reprezentované ako čísla s dvojitou presnosťou (8 bajtov). Všetky neprázdne geometrie obsahujú najmenej jeden pár súradníc (X, Y). Prázdne geometrie neobsahujú žiadne súradnice.
                    • Jeho interiér, hranica a exteriér. Všetky geometrie zaujímajú v priestore určitú pozíciu. Vonkajším dielom geometrie je všetok priestor, ktorý geometria nezaberá. Interiér je priestor, ktorý zaberá geometria. Hranica je rozhraním medzi interiérom a exteriérom geometrie.
                    • Je to MBR alebo obálka, minimálny ohraničujúci obdĺžnik geometrie. Toto je ohraničujúca geometria tvorená minimálnymi a maximálnymi (X, Y) súradnicami:
                    • Kvalita jednoduchosti alebo jednoduchosti. Geometrické hodnoty niektorých typov (LineString, MultyPoint, MultiLineString) sú buď jednoduché, alebo nie sú jednoduché. Každý typ určuje svoje vlastné tvrdenia o jednoduchosti alebo jednoduchosti.
                    • Kvalita toho, či je alebo nie je zatvorené. Geometrické hodnoty niektorých typov (LineString, MultiString) sú buď zatvorené, alebo nie sú zatvorené. Každý typ určuje svoje vlastné tvrdenia, či sú zatvorené alebo nie.
                    • Kvalita toho, či je prázdny alebo nie je prázdny Geometria je prázdna, ak nemá žiadne body. Exteriér, interiér a hranica prázdnej geometrie nie sú definované, tj. Sú reprezentované hodnotou NULL. Prázdna geometria je definovaná ako vždy jednoduchá. Prázdna geometria má plochu 0.
                    • Jeho rozmer Geometria môže mať rozmer -1, 0, 1 alebo 2.
                      • -1 znamená prázdne geometrie.
                      • 0 znamená geometriu bez dĺžky a bez plochy.
                      • 1 znamená geometriu s nenulovou dĺžkou a nulovou plochou.
                      • 2 znamená geometriu s nenulovou plochou.

                      Bod je geometria, ktorá predstavuje jedno miesto v súradnicovom priestore.

                      9.2.5 Príklady bodov

                      • Predstavte si rozsiahlu mapu sveta s množstvom miest. Bod môže predstavovať každé mesto.
                      • Na mape mesta by bod mohol predstavovať autobusovú zastávku.

                      9.2.6 Vlastnosti bodu

                      • Hodnota súradnice X.
                      • Hodnota súradnice Y.
                      • Hranica bodu je prázdna množina.
                      • Bod je definovaný ako geometria nulového rozmeru.

                      Krivka je jednorozmerná geometria, zvyčajne reprezentovaná postupnosťou bodov. Jednotlivé podtriedy krivky určujú formu interpolácie medzi bodmi. Curve je neaktualizovateľná trieda.

                      9.2.8 Vlastnosti krivky

                      • Súradnice jej bodov.
                      • Krivka je definovaná ako jednorozmerná geometria.
                      • Krivka je jednoduchá, ak neprechádza dvakrát rovnakým bodom.
                      • Krivka je uzavretá, ak sa jej počiatočný bod rovná koncovému bodu.
                      • Hranica uzavretej krivky je prázdna.
                      • Hranica neuzavretej krivky pozostáva z jej dvoch koncových bodov.
                      • Krivka, ktorá je jednoduchá a uzavretá, je prsteň.

                      LineString je krivka s lineárnou interpoláciou medzi bodmi.

                      9.2.10 Príklady LineString

                      • Na mape sveta môže reťazec LineStrings predstavovať rieky.
                      • Na mape mesta môže reťazec LineStrings predstavovať ulice.

                      9.2.11 Vlastnosti LineString

                      • Súradnice segmentov LineString definované každou po sebe nasledujúcou dvojicou bodov.
                      • LineString je čiara, ak pozostáva presne z dvoch bodov.
                      • LineString je LinearRing, je uzavretý a jednoduchý.

                      Povrch je dvojrozmerný geometrický objekt.

                      9.2.13 Vlastnosti povrchu

                      • Povrch je definovaný ako dvojrozmerná geometria.
                      • Špecifikácia OpenGIS definuje jednoduchý povrch ako povrch pozostávajúci z jednej „záplaty“, ktorá je spojená s jednou „vonkajšou hranicou“ a nulou alebo viacerými „vnútornými“ hranicami.
                      • Hranica jednoduchého povrchu je množina uzavretých kriviek zodpovedajúcich jeho vonkajším a vnútorným hraniciam.

                      Jedinou podtriedou Surface definovanou v špecifikácii OpenGIS je Polygon.

                      Polygón je rovinná plocha predstavujúca mnohostrannú geometriu definovanú jednou vonkajšou hranicou a nulovou alebo viacerými vnútornými hranicami. Každá vnútorná hranica definuje dieru v mnohouholníku.

                      9.2.15 Príklady mnohouholníkov

                      1. Hranicu mnohouholníka tvorí sústava lineárnych prstencov (t. J. Lineárne reťazce, ktoré sú jednoduché a uzavreté), ktoré tvoria jej vonkajšie a vnútorné hranice.
                      2. V hraničnom kríži nie sú žiadne dva prstence, prstence na hranici mnohouholníka sa môžu pretínať v bode, ale iba ako dotyčnica.
                      3. Polygón nesmie mať prerušené čiary, hroty alebo prerazenie.
                      4. Interiér každého mnohouholníka je spojená množina bodov.
                      5. Exteriér mnohouholníka s jedným alebo viacerými otvormi nie je spojený. Každý otvor definuje pripojený komponent Exteriéru.

                      Vo vyššie uvedených tvrdeniach sú polygóny jednoduchými geometriami.

                      Kolekcia GeometryCollection je geometria, ktorá je kolekciou jednej alebo viacerých geometrií akejkoľvek triedy.

                      Všetky prvky v kolekcii GeometryCollection musia byť v rovnakej priestorovej referencii (t.j. v rovnakom súradnicovom systéme). GeometryCollection nekladie na svoje prvky žiadne ďalšie obmedzenia.

                      • Typy prvkov
                      • Rozmer.
                      • Ďalšie obmedzenia stupňa priestorového prekrývania medzi prvkami.

                      MultiPoint je zbierka, ktorej prvky sú obmedzené na body. Body nie sú nijako spojené ani objednané.

                      9.2.18 Príklady MultiPoint

                      9.2.19 Vlastnosti MultiPoint

                      • MultiPoint je definovaný ako geometria nulového rozmeru.
                      • MultiPoint je jednoduchý, ak nie sú dva body v programe MultiPoint rovnaké (majú rovnaké hodnoty súradníc).
                      • Hranica MultiPointu je prázdna.

                      MultiCurve je zbierka geometrie, ktorej prvkami sú krivky. MultiCurve je trieda, ktorú nemožno vytvoriť.

                      9.2.21 Vlastnosti MultiCurve

                      • MultiCurve je jednoduchá vtedy, ak sú všetky jej prvky jednoduché, jediné priesečníky medzi akýmikoľvek dvoma prvkami sa vyskytujú v bodoch, ktoré sa nachádzajú na hraniciach oboch prvkov.
                      • Hranica MultiCurve sa získa použitím „pravidla odboru mod 2“: Bod je na hranici MultiCurve, ak je v hraniciach nepárneho počtu prvkov MultiCurve.
                      • MultiCurve je definovaná ako jednorozmerná geometria.
                      • MultiCurve je zatvorený, ak sú zatvorené všetky jeho prvky.
                      • Hranica uzavretej MultiCurve je vždy prázdna.

                      MultiLineString je MultiCurve, ktorého prvkami sú LineStrings.

                      9.2.23 Príklady MultiLineString

                      MultiSurface je geometrická zbierka, ktorej prvkami sú povrchy. MultiSurface je trieda, ktorú nemožno vytvoriť.

                      9.2.25 Tvrdenia MultiSurface

                      1. Interiéry akýchkoľvek dvoch povrchov v MultiSurface sa nemusia krížiť.
                      2. Hranice akýchkoľvek dvoch prvkov v MultiSurface sa môžu pretínať nanajvýš v konečnom počte bodov.

                      Jedinou podtriedou MultiSurface, ktorú je možné vytvoriť, je MultiPolygon.

                      MultiPolygon je MultiSurface, ktorého prvkami sú mnohouholníky.

                      9.2.27 Príklady MultiPolygon

                      9.2.28 Tvrdenia pre MultiPolygons sú:

                      1. Interiéry dvoch mnohouholníkov, ktoré sú prvkami multipolygónu, sa nemusia pretínať.
                      2. Hranice akýchkoľvek dvoch polygónov, ktoré sú prvkami viacpolygónu, sa nesmú krížiť a môžu sa dotýkať iba konečného počtu bodov. (Upozorňujeme, že prvé tvrdenie je už zakázané.)
                      3. MultiPolygon nesmie mať orezané čiary, hroty alebo dierky. MultiPolygon je sada pravidelných, uzavretých bodov.
                      4. Interiér MultiPolygonu s viac ako jedným polygónom nie je prepojený, počet spojených komponentov interiéru MultiPolygonu sa rovná počtu polygónov v MultiPolygone.

                      9.2.29 Vlastnosti MultiPolygon

                      • MultiPolygon je definovaný ako dvojrozmerná geometria.
                      • Hranica MultiPolygonu je sada uzavretých kriviek (LineStrings) zodpovedajúcich hraniciam jej prvku Polygons.
                      • Každá krivka na hranici MultiPolygonu je na hranici presne jedného prvku mnohouholníka a každá krivka na hranici prvku mnohouholníka je na hranici MultiPolygonu.

                      Táto časť popisuje štandardné formáty priestorových údajov, ktoré sa používajú na ukladanie geometrických objektov.

                      Reprezentácia geometrie dobre známym textom (WKT) je navrhnutá na výmenu geometrických údajov vo forme ASCII.

                      Príklady WKT reprezentácií geometrických objektov sú:

                      BOD (10 10) A bod. LINESTRING (10 10, 20 20, 30 40) LineString s tromi bodmi. POLYGON ((10 10, 10 20, 20 20, 20 15, 10 10)) Polygón s jedným vonkajším krúžkom a nulovým vnútorným krúžkom. MULTIPOINT (10 10, 20 20) MultiPoint s dvoma bodmi. MULTILINESTRING ((10 10, 20 20), (15 15, 30 15)) MultiLineString s dvoma LineStrings. MULTIPOLYGON ((((10 10, 10 20, 20 20, 20 15, 10 10)), ((60 60, 70 7, 80 60, 60 60))) MultiPolygon s dvoma polygónmi. GEOMETRYKOLEKCIA (BOD (10 10), BOD (30 30), LINESTRING (15 15, 20 20)) GeometryCollection pozostávajúci z dvoch bodov a jedného LineString.

                      Textová reprezentácia implementovaných okamžitých geometrických typov je v súlade s touto gramatikou:

                      • Zápis <>* označuje nula alebo viac opakovaní tokenov v zátvorkách
                      • Zátvorky sa nezobrazujú v zozname výstupných tokenov.

                      Dobre známa binárna reprezentácia (WKB) je definovaná špecifikáciami OpenGIS. Je tiež definovaný v norme ISO „SQL/MM Časť 3: Priestorové“.

                      WKB sa používa na výmenu geometrických údajov ako binárne toky reprezentované hodnotami BLOB obsahujúcimi geometrické informácie podľa štruktúr popísaných nižšie.

                      WKB používa nasledujúce základné definície typov:

                      WKB, ktorý zodpovedá POINT (1,1), vyzerá ako táto postupnosť 21 bajtov:

                      MySQL poskytuje hierarchiu dátových typov zodpovedajúcu geometrickému modelu OpenGIS.

                      • GEOMETRIA
                      • BOD
                      • LINESTRING
                      • POLYGÓN
                      • MULTIPOINT
                      • MULTILINESTRING
                      • MULTIPOLYGÓN
                      • GEOMETRYKOLEKCIA

                      Typ GEOMETRIA môže ukladať geometrie akéhokoľvek typu, ostatné typy obmedzujú svoje hodnoty na typ partilkulárnej geometrie. GEOMETRYCOLLECTION môže ukladať kolekciu predmetov akéhokoľvek typu, iné typy kolekcií obmedzujú typ členov kolekcie na konkrétny typ geometrie.

                      MySQL poskytuje množstvo funkcií, ktoré ako vstupné parametre berú reprezentáciu dobre známeho textu a voliteľne identifikátor priestorového referenčného systému a vracajú zodpovedajúcu geometriu.

                      GeomFromText () prijíma ako prvý argument WKT akéhokoľvek typu geometrie.

                      Na konštrukciu hodnôt geometrie obmedzených na konkrétny typ implementácia tiež poskytuje konštrukčne špecifickú funkciu pre každý typ geometrie.

                      Ako voliteľná funkcia môže implementácia tiež podporovať vytváranie hodnôt mnohouholníka alebo viacpolygónu vzhľadom na ľubovoľnú zbierku možno sa pretínajúcich prstencov alebo uzavretých hodnôt LineString. Implementácie, ktoré podporujú túto funkciu, by mali zahŕňať nasledujúce funkcie (Poznámka: MySQL ich zatiaľ neimplementuje):

                      BdPolyFromText (reťazec multiLineStringTaggedText, celé číslo SRID): mnohouholník Vytvorí mnohouholník daný ľubovoľnou zbierkou uzavretých čiarok ako reprezentácia textu MultiLineString. BdMPolyFromText (reťazec multiLineStringTaggedText, celé číslo SRID): MultiPolygon Zostaví MultiPolygon daný ľubovoľnou zbierkou uzavretých linestringov ako textovú reprezentáciu MultiLineString.

                      MySQL poskytuje sadu funkcií, ktoré ako vstupné parametre používajú objekt BLOB obsahujúci dobre známu binárnu reprezentáciu a voliteľne identifikátor SRID (priestorový referenčný systémový systém) a vracajú zodpovedajúcu geometriu.

                      GeomFromWKB môže ako prvý argument akceptovať WKB akéhokoľvek typu geometrie. Na konštrukciu hodnôt geometrie obmedzených na konkrétny typ implementácia tiež poskytuje špecifickú konštrukčnú funkciu pre každý typ geometrie, ako je popísané v zozname vyššie.

                      Ako voliteľná funkcia môže implementácia podporovať aj vytváranie hodnôt polygónu alebo viacpolygónu vzhľadom na ľubovoľnú zbierku možno sa pretínajúcich prstencov alebo uzavretých hodnôt LineString. Implementácie, ktoré podporujú túto funkciu, by mali zahŕňať nasledujúce funkcie (Poznámka: MySQL ich zatiaľ neimplementuje):

                      BdPolyFromWKB (WKBMultiLineString Binary, SRID Integer): mnohouholník Zostavuje mnohouholník daný ľubovoľnou zbierkou uzavretých čiarok ako binárna reprezentácia MultiLineString. BdMPolyFromWKB (WKBMultiLineString Binary, SRID Integer): MultiPolygon Zostavuje MultiPolygon daný ľubovoľnou zbierkou uzavretých linestrings ako binárnu reprezentáciu MultiLineString.

                      Poznámka: funkcie uvedené v tejto časti ešte nie sú v aktuálnej verzii implementované.

                      MySQL poskytuje sadu užitočných funkcií na vytváranie reprezentácií geometrie WKB. Funkcie popísané v tejto časti sú rozšíreniami MySQL k špecifikáciám OpenGIS. Výsledkom týchto funkcií sú BLOB s reprezentáciou geometrie WKB. Výsledky týchto funkcií je možné nahradiť prvým argumentom pre rodinu funkcií GeomFromWKB ().

                      Bod (x, y) Vytvorí WKBPoint pomocou svojich súradníc. MultiPoint (WKBPoint, WKBPoint. WKBPoint) Vytvorí WKBMultiPoint pomocou WKBPoints. Ak ktorýkoľvek argument nie je WKBPoint, návratová hodnota je NULL. LineString (WKBPoint, WKBPoint. WKBPoint) Vytvorí WKBLineString z množstva bodov WKBPoints. Ak ktorýkoľvek argument nie je WKBPoint, návratová hodnota je NULL. Keď je počet WKBPoints menší ako dva, návratová hodnota je NULL. MultiLineString (WKBLineString, WKBLineString. WKBLineString) Vytvorí WKBMultiLineString pomocou WKBLineStrings. Ak ktorýkoľvek argument nie je WKBLineString, návratová hodnota je NULL. Polygón (WKBLineString, WKBLineString. WKBLineString) Vytvorí polygón z množstva WKBLineStrings. Ak ktorýkoľvek argument nereprezentuje WKB LinearRing (t. J. Nie je uzavretý a jednoduchý LineString), návratová hodnota je NULL. MultiPolygon (WKBPolygon, WKBPolygon. WKBPolygon) Vytvorí WKBMultiPolygon zo sady WKBPolygons. Ak ktorýkoľvek argument nie je WKBPolygon, hodnota vrátenia je NULL. GeometryCollection (WKBGeometry, WKBGeometry. WKBGeometry) Vytvára kolekciu GeometryCollection. Ak ktorýkoľvek argument nie je dobre vytvorenou WKB reprezentáciou geometrie, návratová hodnota je NULL.

                      MySQL poskytuje štandardný spôsob vytvárania priestorových stĺpcov pre typy geometrie.

                      CREATE TABLE Na vytvorenie tabuľky s priestorovým stĺpcom použite príkaz CREATE TABLE: ALTER TABLE Pomocou príkazu ALTER TABLE pridajte do existujúcej tabuľky priestorový stĺpec:

                      Keď vytvoríte priestorové stĺpce, môžete ich naplniť svojimi priestorovými údajmi.

                      Na vyplnenie priestorovo povolených stĺpcov podporuje MySQL dva priestorové formáty (popísané vyššie), dobre známy text (WKT) a dobre známy binárny súbor (WKB).

                      Všimnite si toho, že klientsky aplikačný program, ktorý chce používať WKB reprezentáciu hodnôt geometrie, je zodpovedný za odosielanie správne vytvorených WKB v dotazoch na server.

                      Vloženie bodu (1,1) s binárnou doslovnou syntaxou: Aplikácie ODBC môžu odosielať reprezentáciu WKB, pričom ho budú viazať ako argument typu BLOB: Vkladanie bodu (1,1) pomocou výsledku mysql_escape_string () v aplikáciách libmysqlclient.

                      Geometrické hodnoty, predtým uložené v tabuľke, je možné načítať vo WKT alebo WKB reprezentácii.

                      Funkcia AsText () poskytuje textový prístup k hodnotám geometrie ich prevodom na reťazec WKT.

                      Funkcie AsBinary () a AsWKB () poskytujú binárny prístup k hodnotám geometrie ich prevodom na objekt BLOB obsahujúci WKB.

                      AsBinary () a AsWKB () vracajú BLOB s geometriou vo svojej reprezentácii WKB.

                      • Akýkoľvek interaktívny program SQL, ako napríklad mysql alebo MySQLCC.
                      • Aplikačné programy v akýchkoľvek jazykoch podporujúce klientske API MySQL.
                      • Funkcie, ktoré prevádzajú geometriu medzi rôznymi formátmi.
                      • Funkcie, ktoré opisujú kvalitatívne alebo kvantitatívne vlastnosti geometrie.
                      • Funkcie, ktoré opisujú vzťahy medzi dvoma geometriami.
                      • Funkcie, ktoré vytvárajú nové geometrie z existujúcich.

                      Ako bolo prediskutované (pozri časť 9.4.1 Typy priestorových údajov MySQL, pozri časť 9.4.4 Plnenie priestorových stĺpcov), MySQL rozumie reprezentáciám geometrie dobre známych textov (WKT) a dobre známych binárnych (WKB) podporou týchto funkcií:

                      GeomFromWKT (string wkt [, integer srid]): geometry Konvertuje reprezentáciu WKT na interný formát geometrie. Podporovaných je aj množstvo funkcií špecifických pre typ. GeomFromWKB (binárne wkb [, celé číslo srid]): geometria Konvertuje reprezentáciu WKB na formát vnútornej geometrie. Podporovaných je aj množstvo funkcií špecifických pre typ. AsWKT (geometry g): string Konvertuje formát vnútornej geometrie na reprezentáciu WKT. AsWKB (geometry g): binárne Konvertuje formát vnútornej geometrie na reprezentáciu WKB.

                      Funkcie, ktoré patria do tejto skupiny, berú ako argument hodnotu geometrie a vracajú nejakú kvantitatívnu alebo kvalitatívnu vlastnosť tejto geometrie. Niektoré funkcie obmedzujú typ argumentu.

                      Tieto funkcie neobmedzujú ich argumenty a akceptujú geometriu akéhokoľvek typu.

                      GeometryType (geometry g): string Vracia ako reťazec názov podtypu geometrie, ktorého je táto inštancia geometrie členom. Dimenzia (geometria g): celé číslo inherentná dimenzia tohto objektu Geometry, ktorá môže byť -1, 0, 1 alebo 2. SRID (geometria g): integer Vráti ID priestorového referenčného systému pre túto geometriu. Obálka (geometria g): geometria Minimálny ohraničovací obdĺžnik (MBR) pre túto geometriu vrátená ako mnohouholník. Polygón je definovaný rohovými bodmi ohraničujúceho rámčeka:

                      Poznámka: MySQL zatiaľ neimplementuje nasledujúce funkcie:

                      Hranica (g: Geometria): Geometry Vráti uzavretie kombinatorickej hranice tejto geometrie. IsEmpty (geometry g): Integer vráti hodnotu 1 (TRUE), ak je táto geometria prázdnou geometriou. Ak je to pravda, potom táto geometria predstavuje množinu prázdnych bodov. IsSimple (geometria g): Integer vráti hodnotu 1 (TRUE), ak táto geometria nemá žiadne neobvyklé geometrické body, ako napríklad vlastné priesečníky alebo samočinnosti. Popis každej instabilnej geometrickej triedy obsahuje špecifické podmienky, ktoré spôsobujú, že inštancia tejto triedy je klasifikovaná ako nie jednoduchá.

                      Poznámka: MySQL zatiaľ neimplementuje nasledujúce funkcie:

                      IsRing (LineString l): Integer vráti 1 (TRUE), ak je tento LineString zatvorený (StartPoint () = EndPoint ()) a tento LineString je jednoduchý (neprechádza rovnakým bodom viac ako raz). IsClosed (LineString l): Integer Returns 1 (TRUE) if this LineString is closed (StartPoint () == EndPoint ()).

                      Poznámka: MySQL zatiaľ neimplementuje nasledujúce funkcie:

                      Ťažisko (mnohouholník p): Bod Matematický ťažisko tohto mnohouholníka ako bodu. Nie je zaručené, že výsledok bude na tomto mnohouholníku. PointOnSurface (p: Polygon): Bod Bod, na ktorom je zaručené, že bude na tomto polygóne.

                      Poznámka: MySQL zatiaľ neimplementuje nasledujúce funkcie:

                      Ťažisko (MultyPolygon p): Bod Matematický ťažisko tohto MultiPolygónu ako bod.Výsledok nie je zaručený, že bude na tomto MultiPolygon. PointOnSurface (MultiPolygon m): Bod A Bod, ktorý bude zaručene na tomto MultiPolygone.

                      Poznámka: Funkcie pre konkrétny typ geometrie vrátia NULL, ak je odovzdaná geometria nesprávneho typu geometrie. Napríklad Area () vráti NULL, ak typ objektu nie je ani mnohouholníkový, ani viacpólový.

                      V sekcii (pozri časť 9.5.2 Funkcie na analýzu vlastností geometrie) sme už diskutovali o niektorých funkciách, ktoré môžu vytvoriť nové geometrie z tých exisujúcich:

                      • Obálka (geometria g): geometria
                      • StartPoint (LineString l): Bod
                      • EndPoint (LineString l): Bod
                      • PointN (LineString l, integer n): Bod
                      • ExteriorRing (Polygon p): LineString
                      • InteriorRingN (Polygon p, Integer N): LineString
                      • GeometryN (GeometryCollection g, integer N): Geometry

                      OpenGIS ponúka množstvo ďalších funkcií, ktoré môžu vytvárať geometrie. Sú navrhnuté tak, aby implementovali priestorové operátory.

                      Poznámka: Tieto funkcie ešte nie sú implementované. Mali by sa objaviť v budúcich vydaniach.

                      Priesečník (geometria g1, g2): geometria Geometria, ktorá predstavuje priesečník množiny bodov g1 s g2. Union (Geometry g1, g2): Geometry Geometria Geometria, ktorá predstavuje zjednotenie množiny bodov g1 s g2. Rozdiel (geometria g1, g2): geometria Geometria, ktorá predstavuje rozdiel v množine bodov g1 s g2. SymDifference (Geometry g1, g2): Geometry Geometria Geometria, ktorá predstavuje bodový symetrický rozdiel g1 s g2. Vyrovnávacia pamäť (geometria g, dvojitá d): geometria Geometria, ktorá predstavuje všetky body, ktorých vzdialenosť od g je menšia alebo rovná vzdialenosti d. ConvexHull (Geometry g): Geometry Geometria, ktorá predstavuje konvexný trup g.

                      Funkcie popísané v týchto častiach berú ako vstupné parametre dve geometrie a vracajú medzi nimi kvalitatívny alebo kvantitatívny vzťah.

                      Aktuálne vydanie poskytuje niektoré funkcie, ktoré môžu testovať vzťahy medzi minimálnymi ohraničovacími obdĺžnikmi dvoch geometrií. Patria sem:

                      MBRContains (geom1, geom2) Vráti 1, ak minimálny ohraničujúci obdĺžnik geom1 obsahuje minimálny ohraničujúci obdĺžnik geom2. V opačnom prípade sa vráti 0. MBRWithin (geom1, geom2) Vráti 1, ak je minimálny ohraničujúci obdĺžnik geom1 v rámci minimálneho ohraničujúceho obdĺžnika geom2. V opačnom prípade sa vráti 0. MBRDisjoint (geom1, geom2) Vráti 1, ak sa Minimálne ohraničujúce obdĺžniky dvoch geometrií nepretínajú. V opačnom prípade sa vráti 0. MBREqual (geom1, geom2) Vráti hodnotu 1, ak sú minimálne obdĺžniky ohraničenia oboch geometrií rovnaké. V opačnom prípade sa vráti 0. MBRIntersects (geom1, geom2) Vráti hodnotu 1, ak sa pretínajú minimálne obdĺžniky s ohraničením dvoch geometrií. V opačnom prípade sa vráti 0. MBROverlaps (geom1, geom2) Vráti 1, ak sa prekrývajú minimálne obdĺžniky s ohraničením. V opačnom prípade sa vráti 0. MBRTouches (geom1, geom2) Vráti hodnotu 1, ak sa prekrývajú minimálne obdĺžniky s ohraničením. V opačnom prípade sa vráti 0.

                      Poznámka: Funkcie uvedené v zozname nižšie ešte nie sú implementované. Tieto funkcie poskytnú plnú (nie iba MBR) podporu priestorovej analýzy.

                      Obsahuje (geom1, geom2) Vráti 1, ak geom1 úplne obsahuje geom2, v opačnom prípade sa vráti 0. Kríže (geom1, geom2) Vráti hodnotu 1, ak geom1 priestorovo pretína geom2. Ak je geom1 polygón alebo multipolygón, vráti sa NULL. Ak je geom2 bod alebo viacbod, vráti sa NULL. V opačnom prípade sa vráti 0. Termín priestorovo krížené označuje priestorový vzťah, keď sa dve dané geometrie pretínajú, a ich priesečníkom vzniká geometria, ktorá má rozmer, ktorý je o jednu menší ako maximálny rozmer dvoch daných geometrií, a priesečník sa nerovná žiadnej z týchto dvoch dané geometrie. Disjoint (geom1, geom2) Vráti 1, ak je geom1 priestorovo nesúvislý s geom2, t. J. Ak sa dané geometrie nepretínajú. V opačnom prípade sa vráti 0. Equal (geom1, geom2) Vráti hodnotu 1, ak je geom1 priestorovo rovnaká ako geom2, v opačnom prípade sa vráti 0. Intersects (geom1, geom2) Vráti hodnotu 1, ak geom1 priestorovo pretína geom2, v opačnom prípade sa vráti 0. Overlaps (geom1, geom2) Vráti 1, ak geom1 priestorovo prekrýva geom2, v opačnom prípade sa vráti 0. Termín priestorové prekrývanie sa používa vtedy, ak sa dve geometrie pretínajú a ich priesečníkom je geometria rovnakého rozmeru, ale nie rovnaká pre žiadnu z daných geometrií. Dotyky (geom1, geom2) Vráti 1, ak sa geom1 priestorovo dotkne geom2, v opačnom prípade sa vráti 0. Dve geometrie sa priestorovo dotýkajú, ak sa vnútro oboch geometrií nepretína, ale hranica jednej z geometrií pretína buď hranicu alebo vnútorný priemer geometrií. Within (geom1, geom2) Vráti 1, ak je geom1 priestorovo v rámci geom2, v opačnom prípade sa vráti 0. Vzdialenosť (geom1: Geometry, geom2: Geometry): Double Najkratšia vzdialenosť medzi dvoma bodmi v dvoch geometriách.

                      Je známe, že operácie vyhľadávania v bežných databázach je možné optimalizovať pomocou indexov. To stále platí pre priestorové databázy. S pomocou širokej škály metód viacrozmerného indexovania, ktoré už boli navrhnuté vo svete, je možné optimalizovať priestorové vyhľadávania, z ktorých najtypickejšie sú:

                      • Bodový dotaz. Hľadá všetky objekty, ktoré obsahujú daný bod.
                      • Dotaz na región. Hľadá všetky objekty, ktoré sa prekrývajú s danou oblasťou.

                      MySQL využíva R-stromy s kvadratickým delením na indexovanie priestorových stĺpcov. Priestorový index je zostavený pomocou MBR geometrie. Pre väčšinu geometrií je MBR minimálnym obdĺžnikom, ktorý obklopuje geometrie. Pre vodorovnú alebo zvislú podšívku, ako aj pre bod je MBR zdegenerovaný obdĺžnik, ktorý predstavuje podšívku a bod.

                      MySQL môže vytvárať priestorové indexy rovnakým spôsobom, akým môže vytvárať bežné indexy. Bežná syntax na vytváranie indexov je rozšírená o kľúčové slovo SPATIAL:

                      S VYTVORIŤ TABUĽKU: S VYTVORIŤ INDEX: S ALTER TABLE:

                      Povedzme, že máme databázu s viac ako 32 000 geometriami. Geometrie sú uložené v poli g typu GEOMETRIA. Tabuľka má tiež pole fid na ukladanie ID objektov s atribútom AUTO_INCREMENT.

                      Optimalizátor zisťuje, či je možné do vyhľadávania zahrnúť dostupné priestorové indexy vždy, keď sa vykoná dotaz s funkciou ako MBRContains () alebo MBRWithin () v klauzule WHERE.

                      Povedzme napríklad, že chceme nájsť všetky objekty, ktoré sa nachádzajú v danom obdĺžniku:

                      Teraz pomocou EXPLAIN skontrolujeme spôsob vykonania tohto dotazu:

                      Teraz sa pozrime, čo by sa stalo, keby sme nemali priestorový index:

                      Vykonajme vyššie uvedený dotaz, pričom ignorujeme priestorový kľúč, ktorý máme:

                      Ak sa index nepoužíva, doba vykonania tohto dotazu sa zvýši z 0,00 sekundy na 0,46 sekundy.

                      V budúcich vydaniach budú priestorové indexy použité aj na optimalizáciu ďalších funkcií. Pozrite si časť 9.5.4 Funkcie na testovanie priestorových vzťahov medzi geometrickými objektmi.


                      2 odpovede 2

                      Skontroloval som tvarový súbor, ktorý ste nahrali do schránky. Ukázalo sa, že tvarový súbor nie je správne prečítaný.

                      keď vytlačím záznamy pre MAR_locations_v2.shp, toto chápem

                      Záznam (MULTIPOLYGON (((386523.5418971451 6432084.711430285, 386523.5418971451 6432184.711430287, 386573.541897146 6432184.711430287, 386573.541897146 6432084,7414285, 384)

                      Záznam (MULTIPOLYGON (((386405,7078714892 6438043,356735789, 386405,7078714892 6438143,356735789, 386505,7078714911 6438143,356735789, 386505,7078714911 6438043,355735789, 386)

                      a keď vytlačím záznamy pre AdditionalPumping_south_v2_test.shp, dostávam

                      toto nie je úplná odpoveď na otázku, ale odpovedá na časť, prečo nedostávate sprisahanie. Možno budete chcieť uložiť svoj tvarový súbor inak, aby ste ho mohli vykresliť.


                      Podmienené funkcie

                      Hodnotí expr: vráti prvú hodnotu z hodnoty zoznam, ktorého zodpovedajúca zhoda z zápasy zoznam sa rovná expr vracia value_if_no_match keby expr sa nerovná žiadnemu zo zápasov v zápasy zoznam

                      A nulový nemožno použiť ani na zhodu, ani na hodnotu, ale value_if_no_match môže byť nulové.

                      ParameterPopis
                      exprakýkoľvek výraz, ktorý sa má zhodovať so zoznamom zápasy
                      zápasyzoznam konštant, ktoré sa majú oddeliť čiarkami expr proti musí byť rovnakého dátového typu ako expr a majú rovnaký počet položiek zoznamu ako hodnoty zoznam
                      hodnotyzoznam konštánt oddelených čiarkami, z ktorých jeden bude vrátený v prípade, že expr zodpovedá položke v súbore zápasy zoznam musí mať rovnaký typ údajov ako value_if_no_match a majú rovnaký počet položiek zoznamu ako zápasy zoznam
                      value_if_no zhodaakákoľvek hodnota, ktorá sa má vrátiť v prípade zhody, musí mať rovnaký typ údajov ako položky v zozname hodnoty

                      Hodnotí expr: keby pravda, vráti sa value_if_true inak, ak falošný alebo nulový, vráti sa value_if_false podrobnosti o kontrole chýb nájdete v skratke

                      Ak sa priamo používa celočíselný stĺpec, táto funkcia bude interpretovať nenulové hodnoty ako pravda a nulové hodnoty ako falošný.

                      Konverzné funkcie

                      Pre CAST () a CONVERT () funkcie, platné typy cieľov sú:

                      • bool
                      • int8
                      • int16
                      • int
                      • dlho
                      • plavák
                      • dvojitý
                      • desatinný
                      • reťazec
                      • char1
                      • char2
                      • char4
                      • char8
                      • char16
                      • char32
                      • char64
                      • char128
                      • char256
                      • časová značka
                      • dátum
                      • čas
                      • Dátum Čas
                      • geometria

                      Vráti ekvivalent pôvodná hodnota prevedené na typ destinácie. The štýl parameter je v súčasnosti použiteľný iba vtedy, keď typ destinácie je reťazec a pôvodná hodnota Je z časová značka alebo Dátum Čas typ.

                      Medzi platné kódy štýlov patria:

                      Skonvertuje daný dátum/čas expr na reťazec zodpovedajúci danému formát. The formát musí byť reťazcový doslovný-výrazy v súčasnosti nie sú podporované. Ľubovoľný text je možné vložiť do reťazca formátu pomocou dvojitých úvodzoviek.

                      Vrátený reťazec bude skrátený na 32 znakov.

                      Medzi platné kódy formátu patria:

                      FormátPopis
                      RRRR4-ciferný rok
                      YY2-ciferný rok
                      MPočet mesiacov v roku bez úvodnej nuly [1 - 12]
                      MMPočet mesiacov v roku s nulou na začiatku [01 - 12]
                      PO3-znaková skratka mesiaca v názve, napr. Jan
                      MESIACÚplný názov mesiaca, napr. Január
                      C.Počet dní v mesiaci bez úvodnej nuly [1 - 31]
                      DDPočet dní v mesiaci s nulou na začiatku [01 - 31]
                      D Y3-znaková skratka dňa v týždni, napr. Pia
                      DEŇÚplný názov dňa v týždni, napr. Piatok
                      HAlias ​​pre H12
                      HHAlias ​​pre HH12
                      H12Hodina dňa v 12-hodinovom formáte bez úvodnej nuly [0 - 11]
                      HH12Hodina dňa v 12-hodinovom formáte s nulou na začiatku [00 - 11]
                      H24Hodina dňa v 24-hodinovom formáte bez úvodnej nuly [0 - 23]
                      HH24Hodina dňa v 24-hodinovom formáte s nulou na začiatku [00 - 23]
                      MIMinúta hodiny [00 - 59]
                      SSDruhá minúta [00 - 59]
                      AMOznačovateľ pred alebo po obede [AM, POPOLUDNIE]
                      POPOLUDNIEAlias ​​pre AM

                      Funkcie dátumu/času

                      Táto časť obsahuje nasledujúce funkcie:

                        , ktorý môže extrahovať časti výrazov dátumu/času, prevádzať tam a späť medzi dátovými typmi a vracať aktuálny dátum/čas, čo môže vykonávať komplexnejšie prevody dátumu/typu

                      Funkcie základne dátumu/času

                      Celé číslo polia sa považujú za sekundy od epochy dlho/časová značka polia sa od epochy predpokladajú ako milisekundy.

                      Extrahuje deň v týždni z expr [1 - 7]

                      Vráti dátum nasledujúceho dňa v týždni s uvedením názvu dňa v expr, ktorá nastane po danom dátum

                      Vzhľadom na to niekoľko príkladov 2000-10-10 je a Utorok:

                      Extrahuje štvrťrok z expr [1 - 4]

                      Vypočíta rozdiel medzi dvoma výrazmi dátum/čas a vráti výsledok ako integrálny rozdiel v špecifikovaných jednotkách, koľko celých dátumových/časových intervalov typu jednotka je potrebné pripočítať k (alebo odčítať) začať vyrovnať sa koniec až na presnosť jednotka uvedené, pomocou typov jednotiek a pravidiel uvedených v TIMESTAMPADD.

                      Napríklad, ak jednotka boli MESIAC, iba rok a mesiac začať a koniec by sa použili pri výpočte, ak jednotka boli DEŇ, ľubovoľná časová časť od začať & koniec vypadne a podobne. To je na rozdiel TIMESTAMPDIFF, ktorý bude brať do úvahy celistvosť oboch začať & koniec vo výpočte.

                      Toto je symetrický s TIMESTAMPADD vo všetkých prípadoch ako pridanie 1 MESIAC do 31. marca výsledky v 30. aprílaa ČASOVÝ ROZDIEL v MESIAC jednotiek medzi týmito dvoma dátumami je 1.

                      Funkčné volanieVýsledok
                      TIMEBOUNDARYDIFF (MONTH, DATE ('2000-10-10'), DATE ('2000-12-31'))2
                      TIMEBOUNDARYDIFF (MONTH, DATE ('2000-03-31'), DATE ('2000-04-30'))1
                      TIMEBOUNDARYDIFF (MONTH, DATE ('2000-12-31'), DATE ('2000-10-10')) -2
                      TIMEBOUNDARYDIFF (HOUR, 978222896000, DATETIME ('2000-10-10 12:34:56')) -1956

                      Táto funkcia nepracuje s doslovnými dátumovými pečiatkami (napr. 2000-12-31 12:34:56), ak chcete v tejto funkcii použiť reťazcové literály, najskôr ich presuňte na príslušný typ dátumu/času (napr. DATETIME („RRRR-MM-DD HH24: MI: SS“))

                      Sčíta kladný alebo záporný integrál sumu z jednotka dátumové/časové intervaly k dátumu/času v expr

                      Nasledujúce intervaly dátumu a času sú podporované pre jednotka:

                      KonštantnýPopis
                      ROKRok je modifikovaný intervalovým množstvom (nie je ovplyvnené priestupným rokom, atď.) Dochádza k pretečeniu/podtečeniu
                      MESIACMesiac sa upraví o intervalové množstvo a dátum sa upraví, ak dôjde k pretečeniu/podtečeniu, deň upravený na posledný deň vypočítaného mesiaca, ak nie je platným dňom pre daný mesiac (napr. 31. apríla -> 30. apríla)
                      DEŇDeň sa upravuje podľa intervalu (čas nie je ovplyvnený letným časom, atď.). Dátum sa upraví, ak dôjde k pretečeniu/podtečeniu.
                      HODINAHodiny sa upravujú podľa intervalu (čas nie je ovplyvnený letným časom, atď.). Dátum sa upraví, ak dôjde k pretečeniu/podtečeniu.
                      MINUTAAk dôjde k pretečeniu/podtečeniu, minúty sa upravia podľa intervalu a upraví sa dátum/čas
                      DRUHÝSekundy sa upravujú podľa intervalu, dátum/čas sa upraví, ak dôjde k pretečeniu/podtečeniu
                      MILISEKONDAk dôjde k pretečeniu/podtečeniu, milisekundy sa upravia podľa intervalu a upraví sa dátum/čas
                      ŠTVRŤMesiac sa upraví trojnásobkom intervalu, bez ohľadu na počet dní v mesiacoch medzi úpravami dňa, ktoré sa vykonávajú rovnako ako MESIAC popis, ale iba v posledný mesiac (napr. 31. januára + 1 štvrťrok bude 30. apríla, nie 28. apríla kvôli Február)
                      TÝŽDEŇDeň sa upraví 7 -násobkom intervalu (čas, ktorý nie je ovplyvnený letným časom, atď.), Upraví sa mesiac a rok, ak dôjde k pretečeniu/podtečeniu

                      Ktorýkoľvek z týchto jednotka typy môžu mať a SQL_TSI_ majú predponu, napr. oboje DEŇ a SQL_TSI_DAY sú platné jednotka typy na zadanie denného intervalu. Môžu byť tiež jednocitované alebo necitované.

                      Funkčné volanieVýsledok (vo formáte reťazca)
                      TIMESTAMPADD (ROK, 1, „2000-10-10“) 2001-10-10
                      TIMESTAMPADD (MESIAC, 1, '2000-01-31') 2000-02-29
                      TIMESTAMPADD (DEŇ, 1, „2000-12-31“) 2001-01-01
                      TIMESTAMPADD (HOUR, 12, '2000-10-10 12:34:56') 2000-10-11 00:34:56.000
                      TIMESTAMPADD (MINUTA, 1, '2000-10-10 12:34:56') 2000-10-10 12:35:56.000
                      TIMESTAMPADD (DRUHÝ, 1, '2000-12-31 23:59:59') 2001-01-01 00:00:00.000
                      TIMESTAMPADD (MILLISECOND, 1, '2000-10-10 12:34:56') 2000-10-10 12:34:56.001
                      TIMESTAMPADD (ŠTVRŤ, 1, „2000-11-30“) 2001-02-28
                      TIMESTAMPADD (TÝŽDEŇ, 53, '2000-01-01') 2001-01-06

                      Prenášanie výsledku na reťazec vhodný pre typ dátumu/času (napr. RRRR-MM-DD HH24: MI: SS), pošlite výsledok do súboru STRING funkcia (napr. STRING (TIMESTAMPADD (HOUR, 12, '2000-10-10 12:34:56')) )

                      Vypočíta rozdiel medzi dvoma výrazmi dátum/čas a vráti výsledok ako integrálny rozdiel v špecifikovaných jednotkách, koľko celých dátumových/časových intervalov typu jednotka je potrebné pridať k (alebo odčítať) začať vyrovnať sa koniec (alebo sa čo najviac priblížte bez ísť okolo neho) pomocou typov jednotiek a pravidiel uvedených v TIMESTAMPADD.

                      Na rozdiel od ČASOVÝ ROZDIEL, všetky súčasti dátumu/času oboch začať & koniec budú pri výpočte zohľadnené nielen tie, ktoré sú na presnosti jednotka.

                      Toto nie je symetrický s TIMESTAMPADD vo všetkých prípadoch ako pridanie 1 MESIAC do 31. marca výsledky v 30. apríla, ale TIMESTAMPDIFF v MESIAC jednotiek medzi týmito dvoma dátumami je 0.

                      Funkčné volanieVýsledok
                      TIMESTAMPDIFF (MESIAC, DÁTUM ('2000-10-10'), DATE ('2000-12-31'))2
                      TIMESTAMPDIFF (MESIAC, DÁTUM ('2000-03-31'), DATE ('2000-04-30'))0
                      TIMESTAMPDIFF (MESIAC, DÁTUM ('2000-12-31'), DATE ('2000-10-10')) -2
                      TIMESTAMPDIFF (HODINA, 978222896000, DATETIME ('2000-10-10 12:34:56')) -1956

                      Táto funkcia nepracuje s doslovnými dátumovými pečiatkami (napr. 2000-12-31 12:34:56), ak chcete v tejto funkcii použiť reťazcové literály, najskôr ich presuňte na príslušný typ dátumu/času (napr. DATETIME („RRRR-MM-DD HH24: MI: SS“))

                      Komplexné konverzné funkcie dátumu/času

                      Skonvertuje celý dátum na počet milisekúnd, pretože sú akceptované záporné hodnoty epochy

                      Skonvertuje celý dátum na počet sekúnd od prijatia záporných hodnôt epochy

                      Skonvertuje časovú pečiatku na počet milisekúnd od epochy

                      Skonvertuje daný dátum a čas na zloženú časovú pečiatku v milisekundách od epochy

                      Skonvertuje číslo roku a týždňa na počet milisekúnd, pretože sú akceptované záporné hodnoty epochy

                      Skonvertuje číslo roku a týždňa na počet sekúnd od epochy. Záporné hodnoty sú akceptované. Každý nový týždeň začína v nedeľu o polnoci.

                      Funkcie kontroly chýb

                      Chyby sa úspešne zachytia iba vtedy, ak sú výrazy typov s pohyblivou rádovou čiarkou (t.j. dvojitý a plavák).

                      Vyhodnocuje dané expr a ak sa to vyrieši do nekonečna resp NaN, vráť sa val

                      Koncepčne je táto funkcia rovnaká ako IF_INF (IF_NAN (expr, val), val)

                      Vyhodnocuje dané expr a ak sa to vyrieši do nekonečna, vráť sa val

                      Vyhodnocuje dané expr a ak sa to vyrieši NaN, vráť sa val

                      Geopriestorové/geometrické funkcie

                      • Použite ST_ISVALID na určenie, či je geometrický objekt platný. Nasledujúce funkcie fungujú najlepšie s platnými geometrickými objektmi.
                      • Použi REMOVE_NULLABLEfunkcia na odstránenie akýchkoľvek zrušiteľné typy stĺpcov, ktoré by mohli vyplývať z výpočtu odvodeného stĺpca (napr. ako v Projekciách) pomocou jednej z nižšie uvedených funkcií.

                      Skalárne funkcie vylepšeného výkonu

                      Porovnávajú sa nižšie uvedené funkcie X a r súradnice k geometrickým objektom (alebo naopak), čím sa zvyšuje ich výkon v dotazoch. Každá z týchto funkcií má verziu z geometrie na geometriu uvedenú v nasledujúcej časti.

                      Vypočíta minimálnu vzdialenosť medzi daným X a r koordinovať a geom pomocou špecifikovaného typu riešenia. Dostupné typy riešení:

                      • 0 (predvolené) - Euclidean vráti 2 -D euklidovskú vzdialenosť
                      • 1 - Haversine vráti minimálnu vzdialenosť gule v metroch
                      • 2 - Vincenty vracia minimálnu sféroidnú vzdialenosť v metroch, presnejšiu ako Haversine, ale pomalší výkon

                      Poznámka: Ak X a r koordinovať a geom pretínať (overte pomocou ST_INTERSECTS), vzdialenosť bude vždy 0.

                      Vráti sa 1 (pravda) ak X a r súradnica je v rámci určeného vzdialenosť od geom pomocou špecifikovaného typu riešenia. Dostupné typy riešení:

                      • 0 (predvolené) - Euklidovský používa na výpočet vzdialenosti stupne
                      • 1 - Sféra používa na výpočet vzdialenosti gule metre
                      • 2 - Sféroid používa na výpočet vzdialenosti sféroidov metre

                      Vráti sa 1 (pravda) ak X a r súradnica je v rámci určeného vzdialenosť z ohraničujúceho poľa z geom pomocou špecifikovaného typu riešenia. Dostupné typy riešení:

                      • 0 (predvolené) - Euklidovský používa na výpočet vzdialenosti stupne
                      • 1 - Sféra používa na výpočet vzdialenosti metre

                      Skalárne funkcie

                      Vráti plochu danej geometrie geom ak ide o POLYGON alebo MULTIPOLYGON s použitím špecifikovaného typu roztoku. Vráti sa 0 ak je typ vstupnej geometrie (MULTI) BOD alebo (MULTI) LINESTRING. Dostupné typy riešení:

                      • 0 (predvolené) - 2D euklidovská oblasť
                      • 1 - zakrivený povrch na guli v metroch štvorcových
                      • 2 - zakrivený povrch na sféroide v metroch štvorcových

                      Vráti geometriu, ktorá predstavuje všetky body, ktorých vzdialenosť od danej geometrie je geom je menšia alebo rovná danej vzdialenosti polomer. The polomer jednotky môžu byť špecifikované podľa Riešenie zadajte (predvolené je v stupňoch) a polomer je vytvorený v poskytnutých štýl. The štýl možnosti sú špecifikované ako zoznam dvojíc kľúč – hodnota oddelených prázdnymi miestami, napr. 'quad_segs = 8 endcap = kolo'. Ak prázdne štýl zoznam (''), budú použité predvolené nastavenia. The štýl parameter musí byť zadaný, aby poskytoval a Riešenie typ.

                      • quad_segs - počet segmentov použitých na aproximáciu štvrťkruhu (predvolené je 8)
                      • koncovka - štýl koncovej čiary vyrovnávacej pamäte (predvolené je okrúhly) možnosti sú okrúhly, plochý (alebo zadok) a námestie
                      • pripojiť sa - štýl spojenia vyrovnávacej pamäte (predvolené je okrúhly) možnosti sú okrúhly, mitra (alebo mitra) a skosenie
                      • mitre_limit - limit pomeru pokosu vyjadrený ako číslo s pohyblivou rádovou čiarkou (mitre_limit je tiež prijateľné)
                      • 0 (predvolené) - 2D euklidovská vzdialenosť polomeru v stupňoch
                      • 1 - vzdialenosť polomeru zakriveného povrchu na guli v metroch
                      • 2 - vzdialenosť polomeru zakriveného povrchu na sféroide v metroch

                      Okolo vytvorte 5-metrový nárazník geom pomocou predvolených štýlov: ST_BUFFER (geom, 5, '', 1). Okolo vytvorte 5-stopový (prevod stôp na metre) geom pomocou nasledujúcich štýlov: ST_BUFFER (geom, 5*0,3048, 'quad_segs = 4 endcap = flat', 1)

                      Vypočíta 2-D BOD v geom1 k tomu je najbližšie geom2 pomocou špecifikovaného typu riešenia. Ak geom1 alebo geom2 je prázdny, a nulový sa vracia. Dostupné typy riešení:

                      • 0 (predvolené) - Euclidean vypočíta najbližší bod pomocou 2 -D euklidovskej vzdialenosti
                      • 1 - Haversine vypočíta najbližší bod pomocou vzdialenosti gule v metroch
                      • 2 - Vincenty vracia minimálnu sféroidnú vzdialenosť v metroch, presnejšiu ako Haversine, ale pomalší výkon

                      Vráti iba uvedené typ z danej geometrie zbierka. Typ je číslo, ktoré mapuje nasledujúce:

                      Vypočíta minimálnu vzdialenosť medzi danými geometriami, geom1 a geom2pomocou zadaného typu riešenia. Dostupné typy riešení:

                      • 0 (predvolené) - Euclidean vráti 2 -D euklidovskú vzdialenosť
                      • 1 - Haversine vráti minimálnu vzdialenosť gule v metroch
                      • 2 - Vincenty vracia minimálnu sféroidnú vzdialenosť v metroch, presnejšiu ako Haversine, ale pomalší výkon

                      Poznámka: Ak geom1 a geom2 pretínať (overte pomocou ST_INTERSECTS), vzdialenosť bude vždy 0.

                      Vypočíta minimálnu vzdialenosť medzi danými bodmi, x1, y1 a x2, y2pomocou zadaného typu riešenia. Dostupné typy riešení:

                      • 0 (predvolené) - Euclidean vráti 2 -D euklidovskú vzdialenosť
                      • 1 - Haversine vráti minimálnu vzdialenosť gule v metroch
                      • 2 - Vincenty vracia minimálnu sféroidnú vzdialenosť v metroch, presnejšiu ako Haversine, ale pomalší výkon

                      Vráti sa 1 (true) ak je maximálna vzdialenosť medzi geometriami geom1 a geom2 je menšia alebo rovná uvedenému vzdialenosť jeden druhého pomocou určeného typu riešenia. Ak geom1 alebo geom2 je nulový, 0 (false) sa vráti. Dostupné typy riešení:

                      • 0 (predvolené) - Euklidovský používa na výpočet vzdialenosti stupne
                      • 1 - Sféra používa na výpočet vzdialenosti metre
                      • 2 - Sféroid používa na výpočet vzdialenosti metre, presnejšie ako guľa, ale pomalší výkon

                      Vráti sa 1 (true) ak je minimálna vzdialenosť medzi geometriami geom1 a geom2 je v rámci uvedených vzdialenosť jeden druhého pomocou určeného typu riešenia. Dostupné typy riešení:

                      • 0 (predvolené) - Euklidovský používa na výpočet vzdialenosti stupne
                      • 1 - Sféra používa na výpočet vzdialenosti metre
                      • 2 - Sféroid používa na výpočet vzdialenosti metre, presnejšie ako guľa, ale pomalší výkon

                      Vráti elipsu pomocou nasledujúcich hodnôt:

                      • centerx - súradnica x alebo zemepisná dĺžka použitá na vycentrovanie elipsy
                      • centery - súradnica y alebo zemepisná šírka použitá na vycentrovanie elipsy
                      • výška - výška elipsy (v stupňoch)
                      • šírka - šírka elipsy (v stupňoch)

                      Vráti sa 1 (pravda) ak geom1 je v rámci uvedených vzdialenosť ohraničujúceho rámčeka z geom2 pomocou špecifikovaného typu riešenia. Dostupné typy riešení:

                      • 0 (predvolené) - Euklidovský používa na výpočet vzdialenosti stupne
                      • 1 - Sféra používa na výpočet vzdialenosti metre

                      Vráti trojrozmernú verziu (napríklad súradnice X, Y a Z) geom, poskytnutá geometria alebo sada geometrií (napr. prostredníctvom názvu stĺpca GEOMETRYCOLLECTION alebo WKT) pomocou z ako nová hodnota z geometrie. Poskytnuté hodnoty z môžu byť tiež odvodené z číselného stĺpca. Ak nie z je poskytovaná, a 0 bude aplikovaný.

                      Ak je k dispozícii stĺpec WKT geom a je poskytnutý numerický stĺpec z, budú hodnoty z priradené k poskytnutým geometriám podľa riadkov v zdrojovej tabuľke. Ak je k dispozícii singulárna geometria geom a je poskytnutý stĺpec z„Trojrozmerné verzie poskytnutej geometrie sa vrátia pre každú hodnotu z uvedenú v tejto ponuke z stĺpci. Ak sú pre obidva uvedené stĺpce geom a z a v každom stĺpci sú uvedené nulové hodnoty, riadok obsahujúci nulové hodnoty bude vo výsledkoch preskočený.

                      Vráti reprezentáciu hašovacieho reťazca danej geometrie geom so špecifikovaným presnosť (dĺžka reťazca geohash). Čím dlhšie presnosť, tým je hash presnejší. Predvolene, presnosť je nastavený na 20 maximum pre presnosť je 32. Vráti sa nulový keby geom je prázdna geometria.

                      Vrátená hodnota bude nie byť geohash presnej geometrie, ale geohash ťažiska danej geometrie

                      Vráti ID typu z geom. Mapovanie typov a ID:

                      • BOD = 0
                      • LINESTRING = 1
                      • POLYGÓN = 3
                      • MULTIPOINT = 4
                      • MULTILINESTRING = 5
                      • MULTIPOLYGÓN = 6
                      • GEOMETRYKOLEKCIA = 7

                      Vytvorí MULTIPOLYGÓN obsahujúci mriežku šesťuholníkov medzi danými minimálnymi a maximálnymi bodmi ohraničujúceho rámčeka. Minimálny bod nemôže byť väčší alebo rovný maximálnemu bodu. Veľkosť (v metroch) strán jednotlivých šesťuholníkov je určená hodnotou bunka_strana. The bunka_strana nemôže byť väčšia ako šírka alebo výška ohraničujúceho rámčeka. Maximálny počet buniek, ktoré je možné vyrobiť, je určený hodnotou limit, kladné celé číslo. Podporované hodnoty pre limit:

                      • -1 - Žiadny limit na počet generovaných buniek (efektívne obmedzený systémovou pamäťou)
                      • 0 (predvolené) - 100 miliónov buniek
                      • & ltn> - Vlastný limit pre n bunky

                      Ak požiadavka na vlastný limit špecifikuje viac buniek (na základe ohraničovacieho poľa a bunka_strana) ako je systémový limit, a nulový sa vracia.

                      Vráti dĺžku geometrie, ak ide o LINESTRING alebo MULTILINESTRING. Vráti sa 0 ak sú podporované aj iné typy geometrie, napr. BOD, MULTIPOINT atď., GEOMETRYCOLLECTION, ale stále platí vyššie uvedené obmedzenie typu, kolekcia bude rekurzívne vyhľadávať LINESTRING a MULTILINESTRING a vráti sa súčet všetkých podporovaných typov geometrie (nepodporované typy sa ignorujú ). Dostupné typy riešení:

                      • 0 (predvolené) - 2D euklidovská dĺžka
                      • 1 - dĺžka na guli v metroch
                      • 2 - dĺžka na sféroide v metroch

                      Vráti čiaru LINESTRING, ktorá predstavuje najdlhšiu čiaru bodov medzi týmito dvoma geometriami. Ak sa nájde viacero najdlhších riadkov, vráti sa iba prvý nájdený riadok. Ak geom1 alebo geom2 je prázdny, nulový sa vracia. Dostupné typy riešení:

                      • 0 (predvolené) - Euclidean používa stupne na výpočet najdlhšieho riadku
                      • 1 - Sféra používa na výpočet najdlhšej čiary metre
                      • 2 - Sféroid používa metre na výpočet najdlhšej čiary, presnejšie ako guľa, ale má nižší výkon

                      Vytvorí LINESTRING z geom ak je to MULTIPOINT. Ak geom je BOD, musí byť aspoň jeden ďalší BOD, aby bolo možné vytvoriť LINESTRING. Ak geom je LINESTRING, musí mať najmenej dva body. Vráti sa nulový keby geom nie je BOD, MULTIPOINT alebo LINESTRING

                      Táto funkcia môže byť z hľadiska výkonu dosť nákladná

                      V danej súradnici vytvorí BOD

                      Táto funkcia môže byť z hľadiska výkonu dosť nákladná

                      Vytvorí POLYGON z geom. Vstupy musia byť zatvorené

                      Táto funkcia môže byť z hľadiska výkonu dosť nákladná

                      Vráti maximálnu vzdialenosť medzi daným geom1 a geom2 geometrie pomocou určeného typu riešenia. Ak geom1 alebo geom2 je prázdny, nulový sa vracia. Dostupné typy riešení:

                      • 0 (predvolené) - vráti maximálnu 2 -D euklidovskú vzdialenosť
                      • 1 - Sféra vráti maximálnu vzdialenosť v metroch
                      • 2 - Sféroid vracia maximálnu vzdialenosť v metroch, presnejšiu ako guľa, ale nižší výkon

                      Vytvorí viac vyrovnávacích pamätí na zadanú hodnotu vzdialenosť okolo daného geom geometria. Viacnásobné vzdialenosti sú uvedené ako hodnoty oddelené čiarkami v poli, napr. [10,20,30]. Platné hodnoty pre vonku sú:

                      • ÚPLNE - označuje, že nárazníky sa budú prekrývať alebo pokrývať dané geom geometria. Toto je predvolené nastavenie.
                      • MIMORIADNE - naznačuje, že okolo daného kruhu budú krúžky geom geometria.

                      Vráti obvod geometrie, ak ide o POLYGON alebo MULTIPOLYGON. Vráti sa 0 ak ide o iný typ geometrie, napr. BOD, MULTIPOINT, LINESTRING alebo MULTILINESTRING. Podporované sú aj súbory GEOMETRYCOLLECTION, ale stále platí vyššie uvedené obmedzenie typov. V kolekcii sa budú rekurzívne vyhľadávať POLYGONY a MULTIPOLYGONY a vráti sa súčet všetkých podporovaných typov geometrie (nepodporované typy sa ignorujú). Dostupné typy riešení:

                      • 0 (predvolené) - 2D euklidovská dĺžka
                      • 1 - dĺžka na guli v metroch
                      • 2 - dĺžka na sféroide v metroch

                      Vráti BOD pomocou zadaného geohash s presnosťou nastavenou na celé číslo presnosť. Ak presnosť je zadaná, funkcia použije toľko znakov v hashe, ktoré sa rovnajú presnosť na vytvorenie geometrie. Ak nie presnosť je zadaná, celá dĺžka súboru geohash sa používa.

                      Vrátený BOD predstavuje stred ohraničujúceho rámčeka geohash

                      Vytvorí MULTIPOLYGÓN obsahujúci mriežku bodov v tvare štvorca medzi danými minimálnymi a maximálnymi bodmi ohraničujúceho rámčeka. Minimálny bod nemôže byť väčší alebo rovný maximálnemu bodu. Vzdialenosť medzi bodmi (v metroch) je určená symbolom bunka_strana. The bunka_strana nemôže byť väčšia ako šírka alebo výška ohraničujúceho rámčeka. Maximálny počet buniek, ktoré je možné vyrobiť, je určený hodnotou limit, kladné celé číslo. Podporované hodnoty pre limit:

                      • -1 - Žiadny limit na počet generovaných buniek (efektívne obmedzený systémovou pamäťou)
                      • 0 (predvolené) - 100 miliónov buniek
                      • & ltn> - Vlastný limit pre n bunky

                      Ak požiadavka na vlastný limit špecifikuje viac buniek (na základe ohraničovacieho poľa a bunka_strana) ako je systémový limit, a nulový sa vracia.

                      Vráti zadanú hodnotu geom ale segmentované n koľkokrát v závislosti od toho, ako max_segment_length vzdialenosť (v jednotkách na základe Riešenie typ) rozdeľuje pôvodnú geometriu. Nové geom zaručene bude mať segmenty, ktoré sú menšie ako dané max_segment_length. Body POINT nie je možné segmentovať. Geometrie zbierky (GEOMETRYCOLLECTION, MULTILINESTRING, MULTIPOINT atď.) Je možné segmentovať, ale segmentovať sa budú iba jednotlivé časti, nie kolekcia ako celok. Dostupné typy riešení:

                      • 0 - Euklidovský používa na výpočet vzdialenosti stupne
                      • 1 (predvolené) - Sféra používa na výpočet vzdialenosti metre

                      Vráti zjednodušenú verziu danej položky geom pomocou algoritmu na zníženie počtu bodov obsahujúcich danú geometriu pri pokuse o čo najlepšie zachovanie pôvodného tvaru. Dané tolerancia určuje, ako veľmi sa má geometria zjednodušiť. Čím vyššie, tolerancia, čím viac bola vrátená geometria zjednodušená. Niektoré otvory môžu byť odstránené a vo vrátenej geometrii môžu byť prítomné niektoré neplatné mnohouholníky (napr. Automaticky sa pretínajúce atď.). Zjednodušiť je možné iba (MULTI) LINESTRINGs a (MULTI) POLYGONs, vrátane tých, ktoré sa nachádzajú v rámci GEOMETRYCOLLECTIONs, akékoľvek iné objekty geometrie sa vrátia nezjednodušené.

                      The tolerancia by mali byť poskytované v rovnakých jednotkách ako údaje. Ako pravidlo, a tolerancia z 0.00001 by zodpovedalo asi jednému metru.

                      Vráti zjednodušenú verziu danej položky geom pomocou algoritmu na zníženie počtu bodov obsahujúcich danú geometriu pri pokuse o čo najlepšie zachovanie pôvodného tvaru. Dané tolerancia určuje, ako veľmi sa má geometria zjednodušiť. Čím vyššie, tolerancia, čím viac bola vrátená geometria zjednodušená. Vo vrátenej geometrii nebudú odstránené žiadne otvory a nebudú prítomné žiadne neplatné mnohouholníky (napr. Seba pretínajúce sa atď.). Zjednodušiť je možné iba (MULTI) LINESTRINGs a (MULTI) POLYGONs, vrátane tých, ktoré sa nachádzajú v rámci GEOMETRYCOLLECTIONs, akékoľvek iné objekty geometrie sa vrátia nezjednodušené.

                      The tolerancia by mali byť poskytované v rovnakých jednotkách ako údaje. Ako pravidlo, a tolerancia z 0.00001 by zodpovedalo asi jednému metru.

                      Vytvorí MULTIPOLYGÓN obsahujúci mriežku štvorcov medzi danými minimálnymi a maximálnymi bodmi ohraničujúceho rámčeka. Minimálny bod nemôže byť väčší alebo rovný maximálnemu bodu. Veľkosť (v metroch) strán jednotlivých štvorcov je určená hodnotou bunka_strana. The bunka_strana nemôže byť väčšia ako šírka alebo výška ohraničujúceho rámčeka. Maximálny počet buniek, ktoré je možné vyrobiť, je určený hodnotou limit, kladné celé číslo. Podporované hodnoty pre limit:

                      • -1 - Žiadny limit na počet generovaných buniek (efektívne obmedzený systémovou pamäťou)
                      • 0 (predvolené) - 100 miliónov buniek
                      • & ltn> - Vlastný limit pre n bunky

                      Ak požiadavka na vlastný limit špecifikuje viac buniek (na základe ohraničovacieho poľa a bunka_strana) ako je systémový limit, a nulový sa vracia.

                      Vytvorí MULTIPOLYGÓN obsahujúci mriežku trojuholníkov medzi danými minimálnymi a maximálnymi bodmi ohraničujúceho rámčeka. Minimálny bod nemôže byť väčší alebo rovný maximálnemu bodu. Veľkosť (v metroch) strán jednotlivých trojuholníkov je určená hodnotou bunka_strana. The bunka_strana nemôže byť väčšia ako šírka alebo výška ohraničujúceho rámčeka. Maximálny počet buniek, ktoré je možné vyrobiť, je určený hodnotou limit, kladné celé číslo. Podporované hodnoty pre limit:

                      • -1 - Žiadny limit na počet generovaných buniek (efektívne obmedzený systémovou pamäťou)
                      • 0 (predvolené) - 100 miliónov buniek
                      • & ltn> - Vlastný limit pre n bunky

                      Ak požiadavka na vlastný limit špecifikuje viac buniek (na základe ohraničovacieho poľa a bunka_strana) ako je systémový limit, a nulový sa vracia.

                      Vráti binárny tvar (WKB) a geom (WKT)

                      Túto funkciu je možné použiť iba v dotazoch na jednu tabuľku.

                      Agregačné funkcie

                      FunkciaPopis
                      ST_AGGREGATE_COLLECT (geom)Alias ​​pre ST_COLLECT_AGGREGATE ()
                      ST_AGGREGATE_INTERSECTION (geom)Alias ​​pre ST_INTERSECTION_AGGREGATE ()
                      ST_COLLECT_AGGREGATE (geom)Vráti GEOMETRYKOLEKCIU obsahujúcu všetky geometrie nachádzajúce sa v geom nastaviť. Všetky geometrie MULTI* budú rozdelené do samostatných singulárnych geometrií, napr. MULTIPOINT ((0 0), (1 1)) by bolo vo výsledkoch rozdelených na BOD (0 0) a BOD (1 1), to isté platí pre prvky z GEOMETRYCOLLECTION nájdeného v geom, kde je v rámci poskytnutej GEOMETRYKOLEKCIA geom sada bude tiež analyzovaná, efektívne ju vyrovná a pridá jednotlivé geometrie do výslednej GEOMETRYCOLLECTION. Všetky prázdne geometrie v geom sa ignorujú, aj keď sú súčasťou GEOMETRYCOLLECTION. Všetky duplikáty WKT budú zachované.
                      ST_DISSOLVE (geom)Rozpustí všetky geometrie v rámci danej množiny do jednej geometrie. Všimnite si toho, že výsledná jednoduchá geometria môže byť stále skupinou nesúvislých geometrií, ale môže byť reprezentovaná ako jedna skupina, napr. GEOMETRYKOLEKCIA. Najlepší výkon pri použití v spojení so susednými geometriami
                      ST_DISSOLVEOVERLAPPING (geom)Rozpustí všetky geometrie v rámci danej množiny do jednej geometrie.Všimnite si toho, že výsledná jednoduchá geometria môže byť stále skupinou nesúvislých geometrií, ale môže byť reprezentovaná ako jedna skupina, napr. GEOMETRYKOLEKCIA. Najlepší výkon pri použití v spojení s prekrývajúcimi sa geometriami
                      ST_INTERSECTION_AGGREGATE (geom)Vráti POLYGON alebo MULTIPOLYGON obsahujúci zdieľanú časť medzi všetkými geometriami, ktoré sa nachádzajú v geom nastaviť. Vráti prázdny súbor GEOMETRYCOLLECTION, ak medzi všetkými geometriami nie je žiadna zdieľaná časť. Funkčne ekvivalentný ST_INTERSECTION (ST_INTERSECTION (ST_INTERSECTION (geom1, geom2), geom3),. GeomN).
                      ST_LINESTRINGFROMORDEREDPOINTS (x, y, t)Vráti LINESTRING, ktorý predstavuje „stopu“ daných bodov (X, r) zoradené podľa daného stĺpca zoradenia t (napr. časová pečiatka alebo poradové číslo). Ak sú niektoré z hodnôt v zadaných stĺpcoch nulový, nulový „bod“ bude vynechaný z výsledného LINESTRINGU. Ak je v zdrojovej tabuľke iba jeden nenulový „bod“, vráti sa BOD. Ak v zdrojovej tabuľke nie sú žiadne nenulové „body“, a nulový sa vracia
                      ST_LINESTRINGFROMORDEREDPOINTS3D (x, y, z, t)Vráti LINESTRING, ktorý predstavuje „stopu“ daných 3D bodov (X, r, z) zoradené podľa daného stĺpca zoradenia t (napr. časová pečiatka alebo poradové číslo). Ak sú niektoré z hodnôt v zadaných stĺpcoch nulový, nulový „bod“ bude vynechaný z výsledného LINESTRINGU. Ak je v zdrojovej tabuľke iba jeden nenulový „bod“, vráti sa BOD. Ak v zdrojovej tabuľke nie sú žiadne nenulové „body“, a nulový sa vracia
                      ST_POLYGONIZE (geom)Vráti súbor GEOMETRYCOLLECTION obsahujúci POLYGONY obsahujúci poskytnuté (MULTI) LINESTRINGY. Geometrie (VÍCE) BODU a (VÍCE) POLYGÓNU sa pri výpočte výslednej GEOMETRYCOLLECTION ignorujú. Ak nie je možné zostrojiť platný POLYGON z poskytnutých (MULTI) LINESTRING (s), bude vrátený prázdny GEOMETRYCOLLECTION.

                      Matematické funkcie

                      Okrúhle expr na najbližšie desatinné číslo s mierka desatinné miesta, keď mierka je kladné číslo zaokrúhľuje na najbližšie číslo tak, ako má výsledok -(mierka) nuly naľavo od desatinnej čiarky, keď mierka je negatívne použitie mierka z 0 zaokrúhliť na najbližšie celé číslo. Príklady:

                      Určuje, či je číslo kladné, záporné alebo nulové. Vráti jednu z nasledujúcich troch hodnôt:

                      Okrúhle expr nadol na najbližšie desatinné číslo pomocou mierka desatinné miesta, podľa rovnakých pravidiel ako OKRÚHLY. Príklady:

                      Nulové funkcie

                      Majte na pamäti, že keď dôjde k chybe, nevznikne žiadna chyba Kinetica sa pokúša previesť iný typ údajov v súbore Nulový nižšie uvedené funkcie, takže ak je výstup neočakávaný, môže sa stať, že typy použité nie sú rovnaké typ.

                      FunkciaPopis
                      IS_NULL (expr)Vráti sa 1 (pravda) ak expr je nulový v opačnom prípade vráti 0 (nepravda)
                      NULLIF (expr_a, expr_b)Vráti sa nulový keby expr_a rovná sa expr_b v opačnom prípade vráti hodnotu expr_a. Oba výrazy by mali byť rovnakého konvertibilného dátového typu
                      NVL (expr_a, expr_b)Vráti sa expr_a ak nie je nulový v opačnom prípade vráti expr_b. Oba výrazy by mali mať rovnaký konvertibilný typ údajov, podrobnosti o kontrole chýb nájdete v časti Skratovanie
                      NVL2 (expr, value_if_not_null, value_if_null)Hodnotí expr: keby expr nevracia a nulový, value_if_not_null sa vracia. Ak expr vracia sa a nulový, value_if_null sa vracia. Obaja value_if_not_null a value_if_null by mali mať rovnaký typ údajov ako expr alebo implicitne konvertibilné, podrobnosti o kontrole chýb nájdete v časti Skrat v obvode
                      REMOVE_NULLABLE (expr)Alias ​​pre ZEROIFNULL
                      ZEROIFNULL (expr)Nahrádza nulový hodnoty s príslušnými hodnotami na základe typu stĺpca (napr. 0 ak číselný stĺpec, prázdny reťazec, ak charN stĺpec atď.). Tiež odstráni zrušiteľné vlastnosť stĺpca, ak sa používa na výpočet odvodeného stĺpca.

                      Reťazcové funkcie

                      Tieto funkcie budú fungovať iba s poliami reťazcov s pevnou šírkou (char1 - char256).

                      Vykonáva zreťazenie reťazcov expr_a & expr_b použiť vnorené CONCAT hovory na zreťazenie viac ako dvoch reťazcov

                      Výsledná veľkosť poľa ľubovoľného CONCAT bude a charN pole dostatočne veľké na to, aby pojalo zreťazené polia, napr. zreťazenie a char32 stĺpci a a char64 stĺpca bude mať za následok a char128 stĺpci. Stĺpce typu char256 nemožno použiť s CONCAT.

                      Vráti zreťazenie expr_a a expr_b, skrátené na maximálnu veľkosť expr_a. V prípade stĺpcov je táto veľkosť explicitná pre reťazcové konštanty, bude najmenšia charN typ, ktorý pojme expr_a reťazec.

                      (char8 je minimum veľkosť potrebná na držanie ABC123 hodnotu, takže výsledok je skrátený na 8 postavy)

                      (char8 je minimum veľkosť potrebná na držanie ABCD1234 hodnota, takže nie ďalšie znaky dá sa zreťaziť)

                      Vráti oktet adresy IP uvedenej v expr v polohe určenej part_num. Platné part_num hodnoty sú konštanty od 1 do 4.

                      Vráti, či ref_expr zodpovedá danému match_expr. Zhoda je doslovný reťazec s nasledujúcimi výnimkami:

                      Ľavé podložky dané base_expr reťazec s príponou pad_expr reťazec k danému dĺžka postáv. Ak base_expr je dlhšia ako dĺžka, návratová hodnota sa skráti na dĺžka postavy. Ak dĺžka je väčšia ako 256, bude skrátená na 256.

                      Vráti sa expr s obráteným poradím znakov.

                      Pravé podložky dané base_expr reťazec s príponou pad_expr reťazec k danému dĺžka postáv. Ak base_expr je dlhšia ako dĺžka, návratová hodnota sa skráti na dĺžka postavy. Ak dĺžka je väčšia ako 256, bude skrátená na 256.

                      Vráti hodnotu soundex z expr. Pri výpočte sa bude brať do úvahy iba prvé slovo v reťazci.

                      Poznámka: Tento algoritmus používa väčšina programovacích jazykov

                      Delenie expr do skupín vymedzených delim znak a vráti znak group_num rozdelená skupina. Ak group_num je pozitívny, skupiny sa budú počítať od začiatku expr ak je záporný, skupiny sa budú počítať od konca expr ísť dozadu. Dva po sebe idúce oddeľovače budú mať za následok pridanie prázdneho reťazca do zoznamu voliteľných skupín. Ak neexistujú žiadne prípady delim existovať v expr, celý reťazec je k dispozícii v skupine 1 (a -1 ). Skupina 0 nič nevracia.

                      Porovnáva expr_a do expr_b lexikografickým spôsobom

                      Užívateľské/bezpečnostné funkcie

                      Vráti, či aktuálny používateľ (alebo daný používateľ, ak je špecifikovaný), bola mu priamo alebo nepriamo priradená daná rola:

                      Masky dĺžka postavy z expr, začínajúc pozíciou identifikovanou pomocou začať, s * znaky (alebo znak uvedený v char):


                      Prázdne geometrie v GEOMETRYCOLLECTION - geografické informačné systémy

                      Dizajnové ciele

                      1. (veľmi) rýchle načítanie údajov z databázy vo formáte WKB,
                      2. (veľmi) rýchla konverzia surových údajov WKB na geografický súbor nástrojov,
                      3. kompatibilita s niekoľkými rôznymi geografickými nástrojmi.

                      Existuje mnoho geografických nástrojov, z ktorých každá modeluje tie isté veci trochu odlišným spôsobom: body, čiary, mnohouholníky. Vzhľadom na svoju osobnú históriu sú niektoré veľmi podobné formátu WKB (napríklad JTS), zatiaľ čo niektoré sú ďalej (OpenMap). Cieľom WKB4J je umožniť autorovi každého súboru nástrojov jednoduchú integráciu WKB4J do vlastného súboru nástrojov pri zachovaní vysokého výkonu.

                      Celkový dizajn

                      To sa dosiahlo rozdelením ovládača na tri časti: WKBReader, WKBParser a WKBFactories.

                      WKBReader získava nespracované údaje zo zdroja údajov. Dáta sú potom odoslané do WKBParser. V súčasnosti je jediným možným zdrojom údajov databáza PostgreSQL, je však triviálne načítavať údaje zo súborov alebo iných databáz.

                      WKBParser postupne spracováva stream WKB a vydáva hovory, keď narazí na položky v toku údajov.

                      Tieto hovory sa vykonávajú vo WKBFactory poskytnutej používateľom. Táto architektúra čerpá zo schémy stratégie (WKBFactory je poskytovaná užívateľom, takže to môže byť skutočne čokoľvek) a SAX API (API na večernom základe pre spracovanie XML). WKBFactory môže na hovory odpovedať ľubovoľne, vrátane ignorovania hovorov. To umožňuje autorovi každej WKBFactory implementovať najefektívnejší kód spracovania pre vlastnú sadu nástrojov. Niektoré sady nástrojov napríklad spracovávajú iba nemeniteľné objekty, zatiaľ čo iné umožňujú, aby bol predmet postavený inkrementálne.

                      • AbstraktWKBFactory: táto továreň obsahuje kód, ktorý sleduje tok udalostí a kričí, keď je niečo v neporiadku (napríklad ak sa stream WKB pokúša vložiť kolekciu GeometryCollection do LineString). Možno to vidieť ako „validačnú“ WKBFactory. Ak ste si istí, že s vašimi údajmi nie je nič zlé, môžete sa rozhodnúť túto triedu neodvodiť a užiť si len rýchlosť. Réžia tejto triedy je však veľmi nízka.
                      • Protokolovanie WKBFactory: dekoratér okolo AbstractWKBFactory, ktorý zaznamenáva každé volanie do systému Log4J. Počas vývoja novej WKBFactory môžete podtriedu LoggingWKBFactory vizualizovať tok hovorov. Keď ste si dostatočne istí, že je vaša WKBFactory správna, môžete LoggingWKBFactory obísť rozšírením programu AbstractWKBFactory. Bežné udalosti hovorov sa zaznamenávajú do informačnej úrovne. Réžia tejto triedy je opäť nízka.
                      • EmptyWKBFactory: táto továreň je prázdna, aby autor vyplnil prázdne miesta. Autor novej WKBFactory by ju nemal predlžovať, ale iba skopírovať do vlastnej aplikácie.

                      3D podpora

                      Aktuálne neexistuje žiadna podpora pre informácie o výške v Špecifikácii jednoduchých funkcií, ale zdá sa, že mnoho projektov (vrátane PostGIS) implementuje rozšírenie Dva a pol D pre návrh jednoduchých funkcií. Jeden dôležitý bod: 2D geometrie je možné kombinovať s 3D geometriami v „kontajnerových“ geometriách (GeometryCollection, MultiPolygon, MultiLineString, MultiPoint), ale nemôžete miešať 2D body s 3D bodmi v rovnakých geometriách pretože zoznam bodov sú vlastne polia štvorhier bez akýchkoľvek hraníc.

                      Pretože to nie je štandardné, nie je implementované v bežných WKBFactories a WKBParser. Namiesto toho je špecifikovaný v rozhraniach WKBFactories3D a WKBParser3D. Továrne, ktoré chcú podporovať túto špecifikáciu, by mali implementovať rozhranie WKBFactories3D. JTSFactories a PostGISFactory áno, ale OpenMapFactory nie, pretože v predvolenom nastavení OpenMap nepodporuje informácie o výške. Ak vaše údaje obsahujú 3D body, mali by ste namiesto WKBParser použiť WKBParser3D.

                      Implementácia bola priamočiara, ale aby bola generickejšia, vyžadovala si určité úpravy v programe WKBParser.

                      Hlúpe body

                      Niektoré rozhodnutia o dizajne sú na spadnutie.

                      Ako sa vodič rozhodne, že videl všetky údaje pre danú geometriu a že by sa mal presunúť na inú geometriu.

                      Buď môžeme nechať WKBFactory, aby sa sama rozhodla, že ponechá počítadlo hĺbky, alebo môžeme nechať vodiča vykonať hovory, aby signalizoval, kedy začínajú geometrie a kde končia. Hĺbkový počítadlo pridáva porovnanie všade, takže viac zaťažuje vývojára továrne. Doplňujúce výzvy volajú, no, vývojári ich musia implementovať, takže to nie je o nič lepšie. Vybral som riešenie dodatočných hovorov, pretože v skutočnosti predstavujú tok údajov WKB, zatiaľ čo počítadlá hĺbky iba predpovedajú, čo by malo nasledovať.

                      SRID v skutočnosti nie sú súčasťou formátu WKB. Niektoré sady nástrojov však môžu vyžadovať, aby boli ich objekty vytvorené pomocou jedného (JTS).


                      Pre typ „MultiPolygon“ musí byť členom „súradníc“ pole súradníc polygónu.

                      Pre typ „LineString“ musí byť členom „súradníc“ pole dvoch alebo viacerých polôh. LinearRing je uzavretý LineString so 4 alebo viacerými polohami. Prvá a posledná pozícia sú ekvivalentné (predstavujú ekvivalentné body). Napriek tomu, že LinearRing nie je výslovne reprezentovaný ako typ geometrie GeoJSON, odkazuje sa naň v definícii typu polygónu.

                      Na trávniku:


                      st_buffer vypočíta vyrovnávaciu pamäť okolo tejto geometrie/každej geometrie. Ak je niektorý z parametrov endCapStyle, joinStyle alebo mitreLimit nastavený na iné ako predvolené hodnoty („ROUND“, „ROUND“, resp. 1,0), potom sa použije podkladová funkcia GEOS „vyrovnávacia pamäť so štýlom“. Podrobnosti nájdete na stránke postgis.net/docs/ST_Buffer.html.

                      st_boundary vráti hranicu geometrie

                      st_convex_hull vytvorí konvexný trup sady bodov

                      st_simplify zjednodušuje čiary odstránením vrcholov

                      st_triangulate trianguluje množinu bodov (nie je obmedzený). st_triangulate vyžaduje GEOS verzie 3.4 alebo novšej

                      st_inscribe_circle vráti maximálny vpísaný kruh pre polygónové geometrie. Ak je pre st_inscribe_circle nQuadSegs 0, vráti sa 2-bodový LINESTRING so stredovým bodom a hraničným bodom každého kruhu, inak sa vráti kruh (vyrovnávacia pamäť), kde nQuadSegs riadi počet bodov v kvadrante, aby sa kruh priblížil. st_inscribe_circle vyžaduje GEOS verzie 3.9 alebo novšej

                      st_voronoi vytvára voronoiovú teseláciu. st_voronoi vyžaduje GEOS verzie 3.5 alebo novšej

                      st_polygonize vytvorí mnohouholník z čiar, ktoré tvoria uzavretý kruh. V prípade st_polygonize musí byť x objekt triedy LINESTRING alebo MULTILINESTRING alebo objekt stĺpca so zoznamom stĺpcov geometrie sfc obsahujúci tieto

                      st_line_merge zlučuje riadky. V prípade st_line_merge musí byť x objekt triedy MULTILINESTRING alebo objekt stĺpca so zoznamom stĺpcov geometrie sfc obsahujúci tieto

                      st_centroid dáva ťažisko geometrie

                      st_point_on_surface vracia bod, ktorý je zaručene na (viac) povrchu.

                      st_reverse obráti uzly v riadku

                      st_node pridáva uzly do lineárnych geometrií v priesečníkoch bez uzla a funguje iba na jednotlivých lineárnych geometriách


                      Pozri si video: Intersection Geometry. PostGIS (Septembra 2021).