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.

I cambiamenti più recenti nel codice mirano a soddisfare i requisiti di OpenGIS. Un aspetto che mancava nelle versioni precedenti è che le funzioni che controllano le relazioni spaziali non tenevano conto della forma effettiva degli oggetti, ma operavano sui rettangoli che li racchiudevano. Le vecchie funzioni sono rimaste com'erano e le nuove, che funzionano nel modo appropriato, hanno un prefisso 'ST_' in accordo con i più recenti requisiti OpenGIS. Inoltre sono state aggiunte nuove operazioni sulle figure geometriche.

Elenco delle nuove funzioni:

Operatori spaziali. Essi producono nuove geometrie.

NomeSpiefazione
ST_UNION(A, B)Unione di A e B
ST_INTERSECTION(A, B)Intersezione di A e B
ST_SYMDIFFERENCE(A, B)Semidifferenza: parti non intersecanti A e B
ST_BUFFER(A, raggio)Restituisce la forma dell'area che si trova alla distanza 'raggio' dalla forma A.

Predicati. Restituiscono un risultato booleano.

NomeSpiegazione
ST_INTERSECTS(A, B)Se A e B si intersecano
ST_CROSSES(A, B)Se A e B si incrociano
ST_EQUAL(A, B)Se A e B sono uguali
ST_WITHIN(A, B)Se A è dentro B
ST_CONTAINS(A,B)Se B è dentro A
ST_DISJOINT(A,B)Se A e B non si intersecano
ST_TOUCHES(A,B)Se A tocca B

Commenti

Sto caricando i commenti......
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.