Známá textová reprezentace geometrie - Well-known text representation of geometry
Známý text (WKT) je text značkovací jazyk za reprezentaci vektor geometrie předměty. A binární ekvivalent, známý jako dobře známý binární soubor (WKB), slouží k přenosu a ukládání stejných informací v kompaktnější formě vhodné pro počítačové zpracování, ale není čitelný člověkem. Formáty byly původně definovány Otevřete geoprostorové konsorcium (OGC) a popsáno v jejich Jednoduchý přístup k funkcím.[1] Aktuální definice standardu je v normě ISO / IEC 13249-3: 2016.[2]
Geometrické objekty
WKT může představovat následující odlišné geometrické objekty:
- Směřovat, MultiPoint
- LineString, MultiLineString
- Polygon, MultiPolygon, Trojúhelník
- PolyhedralSurface
- DIČ (Triangulovaná nepravidelná síť )
- GeometryCollection
Souřadnice pro geometrie mohou být 2D (X, y), 3D (X, y, z), 4D (X, y, z, m) s m hodnota, která je součástí a lineární odkazovací systém nebo 2D s m hodnota (X, y, m). Trojrozměrné geometrie jsou označeny „Z“ za typem geometrie a geometrie s lineární odkazovací systém mít za typem geometrie písmeno „M“. Prázdné geometrie, které neobsahují žádné souřadnice, lze určit pomocí symbolu PRÁZDNÝ
za názvem typu.
Geometrie WKT se používají ve specifikacích OGC a jsou přítomny v aplikacích, které tyto specifikace implementují. Například, PostGIS obsahuje funkce, které mohou převádět geometrie do az reprezentace WKT, což je činí čitelnými pro člověka.
Standardní definice OGC vyžaduje, aby byl polygon topologicky uzavřen. Rovněž uvádí, že pokud je vnější lineární prstenec mnohoúhelníku definován proti směru hodinových ručiček, bude vidět z „vrcholu“. Jakékoli vnitřní lineární kroužky by měly být definovány opačně než vnější kroužky, v tomto případě ve směru hodinových ručiček.[3]
Typ | Příklady | |
---|---|---|
Směřovat | ![]() | BOD (30 10) |
LineString | ![]() | LINESTRING (30 10, 10 30, 40 40) |
Polygon | ![]() | POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10)) |
![]() | POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10), |
Typ | Příklady | |
---|---|---|
MultiPoint | ![]() | MULTIPOINT ((10 40), (40 30), (20 20), (30 10)) |
MULTIPOINT (10 40, 40 30, 20 20, 30 10) | ||
MultiLineString | ![]() | MULTILINESTRING ((10 10, 20 20, 10 40), |
MultiPolygon | ![]() | MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)), |
![]() | MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), | |
GeometryCollection | ![]() | GEOMETRYKOLEKCE (BOD (40 10), |
Následuje několik dalších příkladů geometrických řetězců WKT: (Poznámka: Každá položka níže je samostatná geometrie.)
GEOMETRYKOLEKCE (BOD (4 6), LINESTRING (4 6,7 10)) BOD ZM (1 1 5 60) BOD M (1 1 80) BOD EMPTYMULTIPOLYGON EMPTYTRIANGLE ((0 0 0,0 1 0,1 1 0,0 0 0)) TIN ((((0 0 0, 0 0 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 0 0 0))) POLYHEDRALSURFACE Z (PATCHES ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 0 1 0, 0 1 1, 0 0 1, 0 0 0)), (( 0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 1, 1 0 1, 0 0 1, 0 1 1, 1 1 1)), ((1 1 1, 1 0 1, 1 0 0, 1 1 0, 1 1 1)), ((1 1 1, 1 1 0, 0 1 0, 0 1 1, 1 1 1)))
Známý binární soubor
Známé binární (WKB) reprezentace jsou obvykle zobrazeny v hexadecimální struny.
První byte označuje pořadí bytů pro údaje:
00
: velký endian01
: malý Endian
Další 4 bajty jsou a 32bitové celé číslo bez znaménka pro typ geometrie, jak je popsáno níže:
Typ | 2D | Z | M | ZM |
---|---|---|---|---|
Geometrie | 0000 | 1000 | 2000 | 3000 |
Směřovat | 0001 | 1001 | 2001 | 3001 |
LineString | 0002 | 1002 | 2002 | 3002 |
Polygon | 0003 | 1003 | 2003 | 3003 |
MultiPoint | 0004 | 1004 | 2004 | 3004 |
MultiLineString | 0005 | 1005 | 2005 | 3005 |
MultiPolygon | 0006 | 1006 | 2006 | 3006 |
GeometryCollection | 0007 | 1007 | 2007 | 3007 |
Kruhový řetězec | 0008 | 1008 | 2008 | 3008 |
Složená křivka | 0009 | 1009 | 2009 | 3009 |
CurvePolygon | 0010 | 1010 | 2010 | 3010 |
MultiCurve | 0011 | 1011 | 2011 | 3011 |
MultiSurface | 0012 | 1012 | 2012 | 3012 |
Křivka | 0013 | 1013 | 2013 | 3013 |
Povrch | 0014 | 1014 | 2014 | 3014 |
PolyhedralSurface | 0015 | 1015 | 2015 | 3015 |
CÍN | 0016 | 1016 | 2016 | 3016 |
Trojúhelník | 0017 | 1017 | 2017 | 3017 |
Kruh | 0018 | 1018 | 2018 | 3018 |
Geodetický řetězec | 0019 | 1019 | 2019 | 3019 |
Eliptická křivka | 0020 | 1020 | 2020 | 3020 |
Nurbsova křivka | 0021 | 1021 | 2021 | 3021 |
Clothoid | 0022 | 1022 | 2022 | 3022 |
Spirála křivka | 0023 | 1023 | 2023 | 3023 |
Složený povrch | 0024 | 1024 | 2024 | 3024 |
BrepSolid |
| 1025 |
|
|
AffinePlacement | 102 | 1102 |
|
|
Každý datový typ má jedinečnou datovou strukturu, například počet bodů nebo lineární kroužky, za nimiž následují souřadnice v 64bitový dvojitý čísla.
Například geometrie BOD (2.0 4.0)
je reprezentován jako: 000000000140000000000000004010000000000000
, kde:
- 1 bajtové celé číslo
00
nebo 0: velký endian - 4bajtové celé číslo
00000001
nebo 1: BOD (2D) - 8bajtový float
4000000000000000
nebo 2.0: X-koordinovat - 8bajtový float
4010000000000000
nebo 4.0: y-koordinovat
Varianty formátu
- EWKT a EWKB – Rozšířený dobře známý text / binární soubor
- A PostGIS -specifický formát, který zahrnuje identifikátor prostorového referenčního systému (SRID) a až 4 souřadnice (XYZM).[4][5] Například:
SRID = 4326; BOD (-44,3 60,1)
k vyhledání souřadnic zeměpisné délky / šířky pomocí WGS 84 referenční souřadnicový systém. - Text AGF – Autodesk Formát geometrie
- Rozšíření do OGC Standard (v té době), aby zahrnoval zakřivené prvky; nejvíce pozoruhodně použitý v MapGuide.[6]
Softwarová podpora
Databázové stroje
- Amazon Redshift od 21. listopadu 2019[7]
- Apache Drill podporuje celou řadu geoprostorových dotazů od verze 1.12 a také čtení souborů ESRI Shape (SHP).
- Apache Solr server podnikového vyhledávání od 4.0[8] přes JTS
- Elasticsearch distribuovaný, RESTful vyhledávací a analytický modul od 6.2[9]
- Google BigQuery podporuje geografické informační systémy BigQuery od dubna 2019.
- GigaSpaces InsightEdge[10]
- PostgreSQL s PostGIS Modul 2.0
- Kinetica Geoprostorová databáze s akcelerací GPU
- Oracle Spatial 9i, 10g, 11g
- OmniSci od 4.0
- MarkLogic Server od 4.2[11]
- MemSQL od 4[12]
- MySQL od 4.1[13]
- MariaDB, všechny verze
- Neo4j[14]
- OrientDB[15]
- IBM DB2 LUW 9, 10, 11.1 s prostorovým prodlužovačem; 11.5 s nástrojem Spatial Analytics nebo Spatial Extender[16]
- IBM DB2 pro z / OS 9, 10 s prostorovou podporou
- IBM Netezza s Netezza Spatial
- IBM Informix 9,10,11 s prostorovým databázovým modulem
- Microsoft SQL Server od roku 2008 R2[17]
- Snowflake Inc.
- SpatiaLite
- Teradata 6.1, 6.2, 12, 13 (nativní v 13 prostřednictvím doplňku v předchozích verzích)
- Ingres GeoSpatial
- Altibase 5.x
- SQL kdekoli 12
- SAP HANA SP07, SP08
- H2 od 1.3.173 (2013-07-28)[18]
- Vertica od 7.1.0[19]
- VoltDB od V6.0[20]
API
- Zvyšte knihovny C ++ (C ++): Viz Geometrie io / wkt záhlaví
- Esri geometry-api-java
- GEOS (C / C ++)
- Tvarovaný (Python): Viz Tvarovaná dokumentace a Tvarově v PyPI
- GeoPHP (PHP)
- GDAL (C / C ++ s vazbami na Java, Python a další)
- GeoRust: nerez (Rust vázání)
- Topologie Suite JTS (Jáva)
- Spatial4j (Jáva)
- NetTopologySuite (.SÍŤ)
- OpenLayers (JavaScript)
- OpenScales (ActionScript)
- parsewkt (Python) je analyzátor kolíků z WKT do slovníků pythonu
- pygeoif (Python) analyzuje wkt pomocí regulárních výrazů
- rgeo (Rubín)
- sf (R)
- Terraformer (JavaScript)
- WellKnownLib (C # .Net) Známý textový a binární analyzátor
Protokoly
Viz také
- Jednoduché funkce
- Zeměpisný značkovací jazyk
- Známá textová reprezentace souřadnicových referenčních systémů
Reference
- ^ Herring, John R., ed. (2011-05-28), Standard implementace OpenGIS® pro geografické informace - jednoduchý přístup k funkcím - Část 1: Společná architektura, Otevřete geoprostorové konsorcium, vyvoláno 2019-01-28
- ^ Informační technologie - Databázové jazyky - Multimédia a balíčky aplikací SQL - Část 3: Prostorové (5. vydání), ISO, 2016-01-15, vyvoláno 2019-01-28
- ^ Viz Specifikace implementace OGC pro geografické informace - Přístup k jednoduchým funkcím, část 6.1.11.1. http://www.opengeospatial.org/standards/sfa
- ^ https://github.com/postgis/postgis/blob/2.1.0/doc/ZMSgeoms.txt
- ^ http://postgis.org/docs/ST_GeomFromEWKT.html
- ^ http://e-logistic-plans.gdfsuez.com/mapguide/help/webapi/da/dc0/group___agf_text.htm
- ^ Amazon Redshift ohlašuje podporu prostorových dat
- ^ Podpora GEO Solr
- ^ Typ vstupu dobře známého textu (WKT) v dokumentaci Elasticsearch
- ^ „Geoprostorové dotazy“. docs.gigaspaces.com. Citováno 2020-06-02.
- ^ https://docs.marklogic.com/guide/search-dev/geospatial
- ^ http://docs.memsql.com/docs/geospatial-guide
- ^ Formát dobře známého textu (WKT), Dokumentace MySQL
- ^ https://neo4j-contrib.github.io/spatial/
- ^ https://orientdb.com/docs/3.1.x/indexing/Spatial-Index.html
- ^ https://www.ibm.com/support/knowledgecenter/SSEPGG_11.5.0/com.ibm.db2.luw.spatial.topics.doc/doc/db2sb03.html
- ^ https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/bb933970(v=sql.105)
- ^ H2 vytvoří dokumentaci prostorového indexu
- ^ „Poznámky k verzi HP Vertica 7.1.x“. my.vertica.com. Citováno 2018-03-21.
- ^ https://www.voltdb.com/company/press-releases/voltdb-adds-geospatial-query-support-industrys-innovative-fast-data-platform/