Download presentation
Published byDalton Stevers Modified over 9 years ago
1
Spatialite http://www.gaia-gis.it/gaia-sins/
Created by Alessandro Furieri (Italy) First release published in 2008 SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities. SpatiaLite is smoothly integrated into SQLite to provide a complete and powerful Spatial DBMS (mostly OGC-SFS compliant).
2
SQLite http://www.sqlite.org/ Created by Richard Hipp
First release published in 2000 SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. A single lightweight library implementing the full SQL engine standard SQL implementation: almost complete SQL-92 no complex client/server architecture no installation, no configuration
3
What do you need to get started?
Spatialite Spatialite_GUI Program SQLite SQLite Manager (Firefox plugin) Install extension from Firefox browser
4
Resources SQLite: http://www.sqlite.org/
-File based relational database Spatialite: -SQLite extension for gis functionality GDAL: -Set of libraries for ETL operations with multiple GIS formats QGIS: -Open Source GIS application OSGeo4W: -Installer for suite of open source GIS software and tools GIS
5
Spatialite GUI Application
6
SQLite database files
7
DEMO Spatialite GUI Shapefile loader GDAL Command line
Load shapefile, file geodatabase
8
Loading Shapefile in Spatialite GUI
Load Shapefile
9
Using GDAL to load data into Spatialite
10
Using GDAL to load data into Spatialite
-Load shapefile into Spatialite database ogr2ogr –update –append –f SQLite C:\GISData\NDIC\ndic.sqlite C:\GISData\NDIC\shapefiles\Horizontals_Lines.shp Horizontals_Lines –nln Horizontals_Lines Shapefile directory to Spatialite (windows): for %f in (/GISData/NDIC/*.shp) do ( ogr2ogr -update -append -t_srs ESPGS:4267 -f SQLite C:\GISData\NDIC\ndic.sqlite GISData\NDIC\%f -nln layers) -Load file geodatabase feature class into Spatialite database ogr2ogr –update –append –f SQLite C:\GISData\NDIC\ndic.sqlite MTND_CadNSDI.gdb PLSSFirstDivision –nln Landgrid_PLSS_Sections
11
Firefox SQLite Manager
DEMO Firefox SQLite Manager Spatialite GUI
12
Using Firefox SQLite Manager
-Basic query
13
Spatialite GUI -Basic query
14
Spatialite GUI -query with spatial function
15
Using Firefox SQLite Manager
-Trying to use spatial functions in query
16
SQLite vs Spatialite new database structure
Spatial Metadata Empty
17
Pros Cons Cross-platform No custom installation to use
Single file for transport Simple access to SQL queries Large spatial function library Transform geometries within sql query Fast prototyping of geodatase modeling and analysis Cons Only simple multi-editor environment, no conflict management Less performant than server based RDBMS
18
Who is Spatialite for? Non-Enterprise user
Users with reasonable size datasets User wanting to get started with SQL Users needing another GIS tool in their belt User familiar with SQL wanting access to spatial functions User who needs functionality of RDBMS but does not have access to servers
19
Who is Spatialite NOT for?
Enterprise user who needs maximum performance Users who need a robust multi-editor environment with conflict management User who have very large datasets
20
DEMO Spatialite GUI Query examples
21
Spatialite GUI -Basic query
22
Spatialite GUI -query with spatial function
23
Multiple While Loop Operations
SQL Server Non-Spatial Queries SQL Server MGMT Studio – Midpoint on Linestring USE database IF OBJECT_ID('tempdb..#NDIC_HORZ_LIST') IS NOT NULL DROP TABLE #NDIC_HORZ_LIST SET NOCOUNT OFF -- Create temp table to hold the OBJECTID and apply filter on wells without enough points CREATE CLUSTERED INDEX idx_NDIC_HORZ_LIST_lineid ON #NDIC_HORZ_LIST(lineID) SELECT lineID = identity (int,1,1), OBJECTID INTO #NDIC_HORZ_LIST FROM database.dbo.API12_PATHS CREATE INDEX idx_NDIC_HORZ_LIST_objectid ON #NDIC_HORZ_LIST(OBJECTID) geometry numeric(25,20) numeric(25,20) numeric(25,20) numeric(25,20) numeric(25,20) numeric(25,20) numeric(25,20) = 0 numeric(25,20) = 0 numeric(25,20) int int INT geometry geometry geometry NVARCHAR(MAX) = 1 -- Outer loop to iterate over lines in table, using the counts from the temp table <= (SELECT COUNT(*) FROM #NDIC_HORZ_LIST) -- Assign OBJECTID FROM Temp table to variable BEGIN = (SELECT OBJECTID FROM #NDIC_HORZ_LIST WHERE lineID -- Assign SHAPE From table to geometry variable / 2 = (SELECT SHAPE FROM database.dbo.API12_PATHS WHERE OBJECTID = 'LINESTRING(' = 1 -- Loop through points in line until the working length is longer than half the line length -- For first point add start point from line = 1 + AS VARCHAR(10)) + ' ' + AS VARCHAR(10)) + ')' END ELSE -- Strip the trailing ) from the line string text = - 1) + ',' + AS VARCHAR(10)) + ' ' + AS VARCHAR(10)) + ')' = 4267) - 1).STX AS VARCHAR(10)) + ' ' + - 1).STY AS VARCHAR(10)) + ',' + = geometry::STGeomFromText('LINESTRING(' + AS VARCHAR(10)) + ' ' + AS VARCHAR(10)) + ')', 4267) = - 1).STX = - 1).STY = = = * = * = geometry::STGeomFromText('POINT(' + AS VARCHAR(25)) + ' ' + AS VARCHAR(25)) + ')',4267) SELECT INSERT INTO database.dbo.API10_SHL(OBJECTID,SHAPE) ROW_NUMBER() OVER(ORDER BY FROM database.dbo.API12_PATHS AS t2 + 1 + 1 Multiple While Loop Operations SLOWER
24
Spatialite GUI -query with spatial function
25
Spatialite GUI -attach to another sqlite database SQL Query GUI
26
-Query using join to attached database
Spatialite GUI -Query using join to attached database
27
Spatialite Spatial Functions
GeomFromExifGpsBlob PointFromWKB IsSimple NumPoints SingleSidedBuffer SridFromAuthCRS MakePoint LineFromWKB IsValid PointN SharedPaths ShiftCoords MakePointZ LineStringFromWKB Boundary Centroid Line_Interpolate_Point ShiftCoordinates MakePointM PolyFromWKB Envelope Area Line_Interpolate_Equidistant_Points ST_Translate MakePointZM PolygonFromWKB Expand ExteriorRing Line_Locate_Point ST_Shift_Longitude MakeLine MPointFromWKB NPoints NumInteriorRing Line_Substring NormalizeLonLat TriangularGrid MultiPointFromWKB NRings NumInteriorRings ClosestPoint ScaleCoords HexagonalGrid MLineFromWKB Reverse InteriorRingN ShortestLine ScaleCoordinates BuildMbr MultiLineStringFromWKB ForceLHR NumGeometries Snap RotateCoords BuildCircleMbr MPolyFromWKB SanitizeGeometry GeometryN Collect RotateCoordinates Extent MultiPolygonFromWKB CompressGeometry MbrEqual ReflectCoords ToGARS GeomCollFromWKB UncompressGeometry MbrDisjoint LineMerge ReflectCoordinates GARSMbr GeometryCollectionFromWKB CastToPoint MbrTouches BuildArea SwapCoords MbrMinX BdPolyFromWKB CastToLinestring MbrWithin Polygonize SwapCoordinates MbrMinY BdMPolyFromWKB CastToPolygon MbrOverlaps UnaryUnion InitSpatialMetaData MbrMaxX AsText CastToMultiPoint MbrIntersects DissolveSegments InsertEpsgSrid MbrMaxY AsWKT CastToMultiLinestring EnvelopesIntersects DissolvePoints AddGeometryColumn ST_MinZ AsBinary CastToMultiPolygon MbrContains LinesFromRings RecoverGeometryColumn MaxZ AsSVG CastToGeometyCollection Equals LinesCutAtNodes DiscardGeometryColumn MinM AsKml CastToMulti Disjoint RingsCutAtNodes RegisterVirtualGeometry MaxM GeomFromKml CastToSingle Touches CollectionExtract DropVirtualGeometry GeomFromText AsGml CastToXY Within LocateAlongMeasure CreateSpatialIndex ST_WKTToSQL GeomFromGML CastToXYZ Overlaps LocateBetweenMeasures CreateMbrCache PointFromText AsGeoJSON CastToXYM Crosses DelaunayTriangulation DisableSpatialIndex LineFromText GeomFromGeoJSON CastToXYZM Intersects VoronojDiagram CheckSpatialIndex LineStringFromText AsEWKB X Contains ConcaveHull RecoverSpatialIndex PolyFromText GeomFromEWKB Y Covers MakeValid UpdateLayerStatistics PolygonFromText AsEWKT Z CoveredBy MakeValidDiscarded CreateTopologyTables MPointFromText GeomFromEWKT M Relate Segmentize CheckSpatialMetaData MultiPointFromText AsFGF StartPoint Distance Split AutoFDOStart MLineFromText GeomFromFGF EndPoint PtDistWithin SplitLeft AutoFDOStop MultiLineStringFromText Dimension Length Intersection SplitRight InitFDOSpatialMetaData MPolyFromText CoordDimension Perimeter Difference Azimuth AddFDOGeometryColumn MultiPolygonFromText NDims Geodesic Length GUnion SnapToGrid RecoverFDOGeometryColumn GeomCollFromText Is3D Great Circle Length GeoHash DiscardFDOGeometryColumn GeometryCollectionFromText IsMeasured IsClosed SymDifference AsX3D FilterMbrWithin BdPolyFromText GeometryType IsRing Buffer MaxDistance FilterMbrContains BdMPolyFromText SRID PointOnSurface ConvexHull 3DDistance FilterMbrIntersects GeomFromWKB SetSRID Simplify HausdorffDistance 3DMaxDistance BuildMbrFilter ST_WKBToSQL IsEmpty SimplifyPreserveTopology OffestCurve Transform RTreeIntersects RTreeDistWithin RTreeContains RTreeWithin
28
Using Spatialite in ArcMap
Read-only access was added at 10.2 Can use geoprocessing tools with layers but with limitations Using layers for geoprocessing input and output to different format seems to work pretty well. Can write results to sqlite database, but pretty buggy at Recommend using as read-only access at current version Cannot be published to ArcGIS Server Cannot be edited through ArcMap
29
DEMO Spatialite functions SQL in Spatialite GUI View layers in ArcMap
30
Interpolated point along line
Spatialite GUI Interpolated point along line Use as midpoint
31
ArcMap - Midpoints
32
Geometry transformation inline function
Spatialite GUI Line offset Geometry transformation inline function
33
ArcMap Line offset
34
Spatialite GUI Single Sided Buffer
35
Spatialite GUI Buffer
36
ArcMap Single Sided Buffer
37
Single Sided Buffer vs Buffer
ArcMap Single Sided Buffer vs Buffer
38
Convex Hull vs Concave Hull
Spatialite GUI Convex Hull vs Concave Hull
39
Convex Hull vs Concave Hull
ArcMap Convex Hull vs Concave Hull Convex Hull Concave Hull
40
Using Spatialite in QGIS
Read/Write Access Direct Editing of features DBManager – Execute queries on SQLite database inside QGIS
41
DEMO Spatialite editing in QGIS SQL in QGIS DB Manager
42
-Connecting to Spatialite database
Spatialite Editing -Connecting to Spatialite database
43
Spatialite Editing -Creating new table SQL Query Editor
44
Spatialite Editing -Add Geometry Column
45
Spatialite Editing -Add new table to map
46
Spatialite Editing -Editing new layer
47
-Query new feature in Spatialite
Spatialite Editing -Query new feature in Spatialite
48
-View new feature in ArcMap
Spatialite Editing -View new feature in ArcMap
49
QGIS Query Layer Single Sided Buffer
50
QGIS Single Sided Buffer
51
THE END
52
- DBManager spatial query and add to map
QGIS Query Layer - DBManager spatial query and add to map
53
QGIS Line offset
54
QGIS – DBManager -Sql window, create new layer from sql query
55
QGIS – DBManager -Sql window, create new layer from sql query -Subset of data based on ST_Intersects
56
Resources SQLite: http://www.sqlite.org/
-File based relational database Spatialite: -SQLite extension for gis functionality Geopackage: -OGC standard for exchange format GDAL: -Set of libraries for ETL operations with multiple GIS formats QGIS: -Open Source GIS application OSGeo4W: -Installer for suite of open source GIS software and tools GIS
57
Spatialite GUI Interpolated points along line
Geometry transformation inline function
58
- Interpolated points along line
ArcMap - Interpolated points along line
59
Delaunay Triangulation
Spatialite GUI Delaunay Triangulation
60
Delaunay Triangulation
ArcMap Delaunay Triangulation
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.