SpatiaLite¶
空间上启用基于文件的sqlite数据库。有关详细信息,请参见空间网站 description page .
文件列表¶
与其他数据库格式类似, .sqlite 文件( .db 是另一个常见的文件扩展名)由几个表组成。几何图形保存在BLOB表列中。
数据访问/连接方法¶
通过OGR可以访问空间网站。看OGR driver page 有关特定的驱动程序信息。驱动程序在GDAL/OGR版本1.7.0或更高版本中可用。
OGR使用空间站点数据库中空间表的名称(几何体列在几何体列表中注册的表)作为层。
连接参数必须包含sqlite扩展名,数据参数应该是空间表(或ogr层)的名称。
CONNECTIONTYPE OGR
CONNECTION "spatialite_db.sqlite"
DATA "layername"
Ogrinfo示例¶
首先,您应该使用“--formats”命令确保GDAL/OGR构建包含空间站点“sqlite”驱动程序:
>ogrinfo --formats
Loaded OGR Format Drivers:
...
-> "GMT" (read/write)
-> "SQLite" (read/write)
-> "ODBC" (read/write)
...
如果你没有司机,你可能想试试 MS4W 或 OSGeo4W 包,其中包括驱动程序。
一旦确认您拥有sqlite驱动程序,就可以在数据库上尝试ogrinfo命令以获取空间表列表:
>ogrinfo counties.sqlite
INFO: Open of `counties.sqlite'
using driver `SQLite' successful.
1: mn_counties (Polygon)
现在使用ogrinfo获取有关空间表结构的信息:
>ogrinfo counties.sqlite county -summary
INFO: Open of `counties.sqlite'
using driver `SQLite' successful.
Layer name: mn_counties
Geometry: Polygon
Feature Count: 87
Extent: (189783.560000, 4816309.330000) - (761653.524114, 5472346.500000)
Layer SRS WKT:
PROJCS["NAD83 / UTM zone 15N",
GEOGCS["NAD83",
DATUM["North_American_Datum_1983",
SPHEROID["GRS 1980",6378137,298.257222101,
AUTHORITY["EPSG","7019"]],
TOWGS84[0,0,0,0,0,0,0],
AUTHORITY["EPSG","6269"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4269"]],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",-93],
PARAMETER["scale_factor",0.9996],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",0],
AUTHORITY["EPSG","26915"],
AXIS["Easting",EAST],
AXIS["Northing",NORTH]]
FID Column = PK_UID
Geometry Column = Geometry
AREA: Real (0.0)
PERIMETER: Real (0.0)
COUNTY_ID: Integer (0.0)
FIPS: String (0.0)
...
Mapfile 示例¶
标准连接¶
LAYER
NAME "my_counties_layer"
TYPE POLYGON
CONNECTIONTYPE ogr
CONNECTION "counties.sqlite"
DATA "mn_counties"
EXTENT 189783.560000 4816309.330000 761653.524114 5472346.500000 # for maximum performance
PROCESSING "CLOSE_CONNECTION=DEFER" # for maximum performance
STATUS ON
CLASS
NAME "mncounties"
STYLE
COLOR 255 255 120
END
END
END
使用SQL语法的连接¶
LAYER
NAME "my_counties_layer"
TYPE POLYGON
CONNECTIONTYPE OGR
CONNECTION "counties.sqlite"
DATA "select geometry from mn_counties"
PROCESSING "CLOSE_CONNECTION=DEFER" # for maximum performance
STATUS ON
CLASS
NAME "mncounties"
STYLE
COLOR 255 255 120
END
END
END
使用联接表进行连接以获取其他属性¶
LAYER
NAME "my_counties_layer"
TYPE POLYGON
CONNECTIONTYPE OGR
CONNECTION "counties.sqlite"
DATA "SELECT mn.geometry, c.fips FROM mn_counties mn inner
join county_data c on mn.county_id = c.county_id'
PROCESSING "CLOSE_CONNECTION=DEFER" # for maximum performance
STATUS ON
CLASS
NAME "mncounties"
STYLE
COLOR 255 255 120
END
END
END
带过滤器的标准连接¶
LAYER
NAME "my_counties_layer"
TYPE POLYGON
CONNECTIONTYPE OGR
CONNECTION "counties.sqlite"
DATA "mn_counties"
FILTER ('[fips]' = '27031')
PROCESSING "CLOSE_CONNECTION=DEFER" # for maximum performance
STATUS ON
CLASS
NAME "mncounties"
STYLE
COLOR 255 255 120
END
END
END
使用SQL语法筛选¶
LAYER
NAME "my_counties_layer"
TYPE POLYGON
CONNECTIONTYPE OGR
CONNECTION "counties.sqlite"
DATA "select geometry from mn_counties where fips = '27031"
PROCESSING "CLOSE_CONNECTION=DEFER" # for maximum performance
STATUS ON
CLASS
NAME "mncounties"
STYLE
COLOR 255 255 120
END
END
END