Funzionalità GIS in 5.3.3
Funzionalità GIS in 5.3.3.
Le informazioni di base sulle caratteristiche spaziali esistenti sono reperibili nella sezione Funzionalità Geografiche della Knowlegebase. La pagina Spatial Extensions nel manuale di MySQL si applica anche a MariaDB.
La release MariaDB 5.3.3 contiene del codice recente che migliora le caratteristiche spaziali.
MySQL opera sui dati spaziali basandosi sugli standard OpenGIS, e in particolare su OpenGIS SFS (Simple feature access, opzione SQL).
Il supporto iniziale era basato sulla versione 05-134 dello standard. MariaDB implementa un sottoinsieme dell'ambiente 'SQL with Geometry Types' proposto da OGC. L'ambiente SQL è stato esteso con un insieme di tipi geometrici.
MariaDB supporta delle estensioni spaziali che operano sulle caratteristiche spaziali. Queste funzionalità sono disponibili per le tabelle Aria, MyISAM, InnoDB, NDB e ARCHIVE.
Per le colonne spaziali, Aria e MyISAM supportano indici SPATIAL e non-SPATIAL. Gli altri Storage Engines supportano solo gli indici non-SPATIAL.
The most recent changes in the code are aimed at meeting the OpenGIS
requirements. One thing missed in previous versions is that the functions
which check spatial relations didn't consider the actual shape of an object,
instead they operates only on their bounding rectangles. These legacy functions
have been left as they are, and new, properly-working functions are named with
an 'ST_
' prefix, in accordance with the last OpenGIS requirements. Also,
operations over geometry features were added.
The list of new functions:
Spatial operators. They produce new geometries.
Name | Description |
---|---|
ST_UNION(A, B) | union of A and B |
ST_INTERSECTION(A, B) | intersection of A and B |
ST_SYMDIFFERENCE(A, B) | symdifference, notintersecting parts of A and B |
ST_BUFFER(A, radius) | returns the shape of the area that lies in 'radius' distance from the shape A. |
Predicates, return boolean result of the relationship
Name | Description |
---|---|
ST_INTERSECTS(A, B) | if A and B have an intersection |
ST_CROSSES(A, B) | if A and B cross |
ST_EQUAL(A, B) | if A nad B are equal |
ST_WITHIN(A, B) | if A lies within B |
ST_CONTAINS(A,B) | if B lies within A |
ST_DISJOINT(A,B) | if A and B have no intersection |
ST_TOUCHES(A,B) | if A touches B |