Neo4j Spatial at LocationDay 2013 in Malmö

Embed Size (px)

Citation preview

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