Textul cunoscut (Well-known text - WKT) este un limbaj de marcare pentru reprezentarea obiectelor geometrice de tip vector pe o hartă . Un echivalent binar, cunoscut sub numele well-known binary (WKB), este utilizat pentru a transfera și a stoca aceleași informații în bazele de date. Formatele au fost inițial definite de Open Geospatial Consortium (OGC) și descrise în Simple Feature Access Definiția standard actuală este în standardul ISO/IEC 13249-3: 2016.
Obiecte geometrice WKT poate reprezenta următoarele obiecte geometrice distincte:
Punct, MultiPunct Line, MultiLinie Poligon, MultiPoligon, Triunghi Obiecte Poliedrice TIN (Rețea Neregulată Triunghiulară) Colectie Geometrii
Coordonatele pentru geometrii pot fi 2D (x, y), 3D (x, y, z), 4D (x, y, z, m) cu o valoare m care face parte dintr-un sistem liniar de referință, sau 2D cu o valoare m (x, y, m). Geometriile tridimensionale sunt desemnate de "Z" după tipul de geometrie, iar geometriile cu un sistem liniar de referință au valoarea "M" după tipul de geometrie. Geometriile goale care nu conțin coordonate pot fi specificate folosind simbolul EMPTY după numele tipului.
Geometriile WKT sunt utilizate în toate specificațiile OGC și sunt prezente în aplicațiile care implementează aceste specificații. De exemplu, PostGIS conține funcții care pot converti geometriile în și dintr-o reprezentare WKT, ceea ce le face umane lizibile.
Definiția standard OGC necesită închiderea topologică a unui poligon. De asemenea, se afirmă că, dacă inelul liniar exterior al unui poligon este definit într-o direcție în sens invers acelor de ceasornic, acesta va fi văzut din „partea de sus”. Orice inele liniare interioare trebuie definite în mod opus în comparație cu inelul exterior, în acest caz, în sensul acelor de ceasornic.See the OGC Implementation Specification for geographic information – Simple Feature Access, section 6.1.11.1. http://www.opengeospatial.org/standards/sfa + Primitive Geometrice (2D) Tip geometrie Exemplu Punct POINT (30 10) Liniar LINESTRING (30 10, 10 30, 40 40) Poligon POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10)) POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30)) + Multi Geometrie(2D) Tip geometrie Exemplu Multi Punct MULTIPOINT ((10 40), (40 30), (20 20), (30 10)) MULTIPOINT (10 40, 40 30, 20 20, 30 10) MultiLine MULTILINESTRING ((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10)) MultiPoligon MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)), ((15 5, 40 10, 10 20, 5 10, 15 5))) MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),
(30 20, 20 15, 20 25, 30 20))) Colectie de geometrii GEOMETRYCOLLECTION (POINT (40 10), LINESTRING (10 10, 20 20, 10 40),
POLYGON ((40 40, 20 45, 45 30, 40 40))) Următoarele sunt alte câteva exemple de șiruri WKT geometrice:
(Notă: Fiecare element de mai jos este o geometrie individuală.) GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10)) POINT ZM (1 1 5 60) POINT M (1 1 80) POINT EMPTY MULTIPOLYGON EMPTY TRIANGLE((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)) )
Well-known binar (reprezentari binare) Reprezentările binare (WKB) sunt prezentate în șiruri hexadecimale .
Primul octet indică comanda de byte pentru date:
00 : endian mare 01 : endian mic
Următorii 4 octeți sunt un număr întreg nesemnat pe 32 de biți pentru tipul de geometrie, așa cum este descris mai jos: +Tipuri de geometrii si codul integralei WKBTip2DZMZMGeometry0000100020003000Point0001100120013001LineString0002100220023002Polygon0003100320033003MultiPoint0004100420043004MultiLineString0005100520053005MultiPolygon0006100620063006GeometryCollection0007100720073007CircularString0008100820083008CompoundCurve0009100920093009CurvePolygon0010101020103010MultiCurve0011101120113011MultiSurface0012101220123012Curve0013101320133013Surface0014101420143014PolyhedralSurface0015101520153015TIN0016101620163016Triangle0017101720173017Circle0018101820183018GeodesicString0019101920193019EllipticalCurve0020102020203020NurbsCurve0021102120213021Clothoid0022102220223022SpiralCurve0023102320233023CompoundSurface0024102420243024BrepSolid1025AffinePlacement1021102 Fiecare tip de date are o structură de date unică, cum ar fi numărul de puncte sau inele liniare, urmată de coordonate în numere duble pe 64 de biți.
De exemplu, geometria POINT(2.0 4.0) este reprezentată in binar ca:
00 00000001 4000000000000000 4010000000000000, unde:
1-octet număr întreg 00 sau 0: endian mare numar întreg 4-byte 00000001 sau 1: POINT (2D) 8-byte float 4000000000000000 sau 2.0: x -coordinate 8-byte float 4010000000000000 sau 4.0: y -coordinate
Variante WKT
EWKT și EWKB - Text binecunoscut extins/binar (Extended Well-Known Text/Binary ) Un format specific PostGIS care include identificatorul sistemului de referință spațial (SRID) și până la 4 valori ordonate (XYZM). De exemplu: SRID=4326;POINT(-44.3 60.1) pentru a localiza o coordonată de longitudine / latitudine folosind sistemul de coordonate de referință WGS 84 . Text AGF - format geometric Autodesk O extensie la standardul OGC (la vremea respectivă), pentru a include elemente curbate; cel mai notabil utilizat în MapGuide.
Suport software
Motoare de baze de date
Apache Drill acceptă o gamă completă de interogări geospatiale începând cu versiunea 1.12, precum și citirea fișierelor ESRI Shape (SHP). Apache Solr serverul de căutare a incepand cu versiunea 4.0Solr GEO support prin JTS Elasticsearch distribuit, motor de căutare și analiză RESTincepand cu versiunea 6.2Well-Known Text (WKT) Input Type in Elasticsearch documentation PostgreSQL cu Modulul PostGIS 2.0 Kinetica baza de date geospatială accelerată GPU Oracle Spatial 9i, 10g, 11g OmniSci începând cu 4.0 Server MarkLogic începând cu 4.2 MemSQL începând cu versiunea 4 MySQL începând cu versiunea 4.1Well-Known Text (WKT) Format, MySQL documentation MariaDB, toate versiunile Neo4j IBM DB2 LUW 9, 10 cu Spatial Extender IBM DB2 pentru z/OS 9, 10 cu Spatial Support IBM Netezza cu Netezza Spatial IBM Informix 9,10,11 cu modulul de spațiu de date Microsoft SQL Server 2008 R2, 2012, 2014, 2016 SpatiaLite Teradata 6.1, 6.2, 12, 13 (nativă în versiunea 13 prin completare în versiunile anterioare) Ingres GeoSpatial Altibase 5.x SQL Anywhere 12 SAP HANA SP07, SP08 H2 începând cu 1.3.173 (28.07.2013) Vertica începând cu 7.1.0 VoltDB începând V6.0
API-uri
Boost C++ libraries (C++): See Geometry io/wkt header Esri geometry-api-java GEOS (C/C++) Shapely (Python): Consultați Documentația Shapely și Shapely în PyPI GeoPHP (PHP)
GDAL (C/C ++ cu legături la Java, Python și altele) GeoRust: rust-wkt (legături de rugină) JTS Topology Suite (Java) Spatial4j (Java) NetTopologySuite (.NET) OpenLayers (JavaScript) OpenScales (ActionScript) parsewkt (Python) parser WKT in directorii python pygeoif (Python) parser WKT cu expresii obișnuite rgeo (Ruby) sf (R) Terraformer (JavaScript) WellKnownLib (C #. Net) Text binecunoscut și parser binar
Protocoale
GeoSPARQL SensorThings API
Vezi și
Simple Features Geography Markup Language Well-known text representation of coordinate reference systems
Legături externe
Simple Feature Access Specificații Standard spațial ISO (există o taxă pentru acest lucru) Notarea BNF de WKT EBNF Notarea WKT Conversia online între reprezentările obiectelor de geometrie Categorie:Limbaje de marcare Categorie:GIS Categorie:Map Categorie:Pagini cu traduceri nerevizuite