The present manual is not intended to be a complete and exhaustive reference guide;
it is simply intended to explain in a conceptual way the basis of Spatial Data Processing
and the main features supported by SpatiaLite. In order to get most specific informations, you can read the complete list of Spatial SQL functions supported by SpatiaLite. And you can follow the tutorial in order to get a quick how to guide. |
DBMS | Binary size | Brief description |
---|---|---|
PostgreSQL PostGis |
25 MB 1.5 MB |
It claims to be "The world's most advanced open source database",
and that's simply the truth. Not very user friendly (may cause you some headache when you'll try to install and configure it at first time), but surely a very complete and impressive full ACID DBMS. The PostGIS add-on on its own implements a full set of Spatial features (OGC certified); whatever kind of GIS operation you need, PostGIS can support you in an useful way and without dimensional limits. If you are seriously looking for a complete and unrestricted GIS support, and you aren't frightened at all about managing and caring a very sophisticated DBMS, as powerful as complex, PostgreSQL + PostGis is just what you need. |
MySQL Spatial | 42 MB | It claims to be "The world's most popular open source database",
and this too is simply the truth. Reasonably easy to use, very fast, decently simple to manage; not surprisingly it's the preferred choice for so many WEB developers. Often criticized for not being completely conformant to SQL standards, supports a wide set (sometimes puzzling too wide) of data engines. MySql's Spatial enable you to manage in a very effective way GIS data; it's a pity that you can create a spatial index only if you are using MyISAM tables, that aren't neither transactional nor ACIDs. You can use Spatial data in InnoDB tables as well (full ACIDs), but in this case you cannot have spatial indexes. Anyway, if you are looking for a DMBS able to effectively support WEB publishing of very large amounts of GIS data, and aren't worried to use a non-ACID DBMS (e.g. because you are publishing cold data, i.e. replicated data coming out from some other source), you can be very satisfied with MySQL Spatial. |
SQLite SpatiaLite |
200 KB 2 MB |
A very light weighted DBMS; it doesn't pretends to be,
but perhaps it is "The world's smallest and simplest database". As the aforementioned two tends to be vast and complex, as SQLite tends to be simple. But simplicity does not always means incompleteness, or low quality; not in this case, at least. SpatiaLite offers you the option to enable the SQLite DBMS to support a decent and standard-conformant environment for Spatial data as well. It doesn't pretends at all to be better, or fastest, or most powerful than others; most humbly, it just pretends to be simple, light weighted and reasonably useful. SpatiaLite now supports spatial indices as well, via RTrees SQLite introduced since v.3.6.0. If you are looking for an elementary simple-to-manage GIS environment, without frills and undue complexity, and if your have to manage only small- or medium-sized GIS data, SQLite and SpatiaLite can make you feel very happy [I hope so, at least ...] |
Byte Offset | Content | Notes |
---|---|---|
0 | START [hex 00] | a GEOMETRY encoded BLOB value must always start with a 0x00 byte |
1 | ENDIAN [hex 00 or hex 01] |
if this GEOMETRY is BIG_ENDIAN ordered must contain a 0x00 byte value otherwise, if this GEOMETRY is LITTLE_ENDIAN ordered must contain a 0x01 byte value Any other value [neither 0x00 nor 0x01], means that this BLOB cannot be a valid GEOMETRY |
2 - 5 | SRID | a 32-bits integer value [little-
big-endian ordered, accordingly with the precedent one] corresponding to the SRID for this GEOMETRY |
6 - 13 | MBR_MIN_X | a double value [little-
big-endian ordered, accordingly with the precedent one] corresponding to the MBR minimum X coordinate for this GEOMETRY |
14 - 21 | MBR_MIN_Y | a double value corresponding to the MBR minimum Y coordinate |
22 - 29 | MBR_MAX_X | a double value corresponding to the MBR maximum X coordinate |
30 - 37 | MBR_MAX_Y | a double value corresponding to the MBR maximum Y coordinate |
38 | MBR_END [hex 7C] | a GEOMETRY encoded BLOB value must always have an 0x7C byte in this position |
39 - 42 | CLASS TYPE | a 32-bits integer; must identify a valid WKB class, i.e.
|
43 - ... | geometry class specific | length and content depends on geometry class [POINT, LINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION etc] |
LAST | END [hex FE] | a GEOMETRY encoded BLOB value must always end with a 0xFE byte |
GEOMETRY class |
|
||||||
---|---|---|---|---|---|---|---|
POINT |
|
||||||
LINESTRING |
|
||||||
POLYGON |
|
||||||
MULTIPOINT |
|
||||||
MULTILINESTRING |
|
||||||
MULTIPOLYGON |
|
||||||
GEOMETRYCOLLECTION |
|
Byte Offset | Content | Notes |
---|---|---|
0 | ENTITY [hex 69] | a GEOMETRY encoded BLOB value must always have an 0x69 byte in this position |
1 - 4 | CLASS TYPE | a 32-bits integer; must identify a valid WKB class that can be included within a collection, i.e.
|
5 - ... | geometry class specific | Length and content depends on geometry class [POINT, LINESTRING or POLYGON] |
SRID | CSR name | geodetic parameters |
---|---|---|
3000 | Segara / NEIEZ | +proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs |
3001 | Batavia / NEIEZ | +proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs |
3002 | Makassar / NEIEZ | +proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +units=m +no_defs |
3003 | Monte Mario / Italy zone 1 | +proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs |
3004 | Monte Mario / Italy zone 2 | +proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m +no_defs |
srid | auth_name | auth_srid | ref_sys_name | proj4text |
---|---|---|---|---|
3000 | epgs | 3000 | Segara / NEIEZ | +proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs |
3001 | epgs | 3001 | Batavia / NEIEZ | +proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs |
3002 | epgs | 3002 | Makassar / NEIEZ | +proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +units=m +no_defs |
3003 | epgs | 3003 | Monte Mario / Italy zone 1 | +proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs |
3004 | epgs | 3004 | Monte Mario / Italy zone 2 | +proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m +no_defs |
f_table_name | f_geometry_column | type | coord_dimension | srid | spatial_index_enabled |
---|---|---|---|---|---|
Regions | Geometry | MULTIPOLYGON | 2 | 32632 | 1 |
HighWays | Geometry | LINESTRING | 2 | 32632 | 1 |
Towns | Geometry | POINT | 2 | 32632 | 1 |
You can directly check by yourself if SpatiaLite really is an OGC conformant implementation:
|