neo4j spatial at locationday 2013 in malmö
TRANSCRIPT
Neo Technology
Neo4j
Spatial
Craig Taverner
Neo Technology / AmanziTel
#neo4j@[email protected]
Web Map Data with Neo4j-Spatial
and OpenStreetMap
The purpose of this presentation is to introduce Neo4j Spatial, and two specific projects, the GSoC and OSM
Mention Neo Technologies and AmanziTel, but no more
We have a product in the market that uses uDig and Neo4j, but felt that our integration was too specific to our needs, and so decided to collaborate with Neo Technologies to produce a more generalized library available as an extension to the database
Where are the Mushrooms?
Where are the Mushrooms?
NoSQL
Not Only SQL
KV: Dynomite, Voldemort, Tokyo*BigTable: HBase, Hypertable, CassandraDocument: CouchDB, MongoDBGraph: AllegroGraph, Sones, Neo4j
NOSQL data models
Bigtable clones
Key-value stores
Document databases
Graph databasesData complexity
Data size
Points
Points
Points
Point, LineString,Polygon, MultiPolygon,
Geoprocessing,OpenStreetMap
The current success and popularity of NoSQL data models has been driven by the internet, and the associated explosion in the volume and interconnectedness of data.
Neo4j Nodes, Relationships, Properties
Nodes have different propertiesMatrix characters: People vs. Programs
Build structure as you goWho loves Neo?
This example does highlight a few things about semi-structured data, schema-less databases and even opens the conversation for some discussions on performance (implicit indexes through local search, etc.)
Neo4j Spatial 2010
GSoC 2010CoreStorage, GeometryEncoder
Search/RTree, Operations
I/O (Shapefile)
ExtensionsGeotools Datastore
GeoServer & uDig
Ruby APIneo4j-spatial.rb (Rubygem)
OpenStreetMapImport OSM, Dynamic Layers (JSON & CQL)
Export Shapefiles, and SLD styled PNG
Storage:plugable dataset, layer, encoder
Search:Indexing is currently an R-Tree, but it is possible to plug in any custom mechanism conforming to the interface.Multi-dimensional index
Spatial indices (quad-tree, R-tree, kn-tree, SFCs)
Composite indices and dynamic indices
Lucene
Neo4j OSM in uDig
OpenStreetMap
OpenStreetMap
OpenStreetMap
OpenStreetMap
OSMRTree DynamicLayersDynamicLayers
Routing on OSM
Neo4j-Spatial 2011
OSMPerformance
Changesets and Users
GeoprocessingLBS and SimplePointLayer
Routing OSM
GSoC 2011 Geoprocessing functions
Data Mining OSM
What's nextGeoprocessing pipeline
Cool domains: artistic maps
Finding things close to other things
http://blog.neo4j.org/2011/03/neo4j-spatial-part1-finding-things.html
Finding things close to other things
http://blog.neo4j.org/2011/03/neo4j-spatial-part1-finding-things.html
Routing with OSM
Data Mining OSM
timestamp > 1207014810000 and timestamp < 1208310810000 and ( user = 'Zenon' or user = 'tomasCY' or user = 'muffu' or user = 'dcp' or user = 'cartOMike' or user = 'djanda' or user = 'Peter14' or user = 'toaster' or user = 'user_7363' or user = 'lyx')
Artistic Maps
Artistic Maps
Artistic Maps
Cellular Network Topology
Cellular Network Topology
IDSiteLatitudeLongitude
1ABC55.67812.567
2XYZ55.89012.123
3PRQ55.54312.890
IDSectorSiteIDAzimuthBeamwidth
1110100
221120100
331240100
412090
522120110
63224090
7130180
823180180
O(N)
O(ln(N))
O(1)
Click to edit the title text format
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline LevelSeventh Outline LevelEighth Outline LevelNinth Outline Level
Click to edit the title text format
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline LevelSeventh Outline LevelEighth Outline LevelNinth Outline Level