Peter Neubauer
Neo Technology #neo4j @peterneubauer peter@neotechnology.com
Neo4j Spatial - GIS for the rest
- f us.
OSCON Data 2011
Saturday, July 30, 2011
Neo4j Spatial - GIS for the rest of us. OSCON Data 2011 #neo4j - - PowerPoint PPT Presentation
Neo4j Spatial - GIS for the rest of us. OSCON Data 2011 #neo4j Peter Neubauer @peterneubauer Neo Technology peter@neotechnology.com Saturday, July 30, 2011 We are hiring. Now. Contact me. #neo4j @peterneubauer peter@neotechnology.com
Neo Technology #neo4j @peterneubauer peter@neotechnology.com
Saturday, July 30, 2011
#neo4j @peterneubauer peter@neotechnology.com
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
1 2 3
Saturday, July 30, 2011
1 2 3
Saturday, July 30, 2011
name = “Emil” age = 29 sex = “yes” type = KNOWS time = 4 years type = car vendor = “SAAB” model = “95 Aero”
1 2 3
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
9
Saturday, July 30, 2011
Core
9
Saturday, July 30, 2011
Core Storage
9
Saturday, July 30, 2011
Core Storage Search
9
Saturday, July 30, 2011
Core Storage Search GeoProcessing
9
Saturday, July 30, 2011
Core Storage Search GeoProcessing Import/export
9
Saturday, July 30, 2011
Core Storage Search GeoProcessing Import/export Extensions
9
Saturday, July 30, 2011
Core Storage Search GeoProcessing Import/export Extensions Geotools & GeoServer
9
Saturday, July 30, 2011
Core Storage Search GeoProcessing Import/export Extensions Geotools & GeoServer uDig
9
Saturday, July 30, 2011
Core Storage Search GeoProcessing Import/export Extensions Geotools & GeoServer uDig OpenStreetMap
9
Saturday, July 30, 2011
Layer1 Layer2 Layer3 Geometry Encoder Dynamic Query Dynamic Styles Dynamic Meta-Inf Connected domain data Neo4j Spatial GIS and Spatial stacks Multidim Indexes
Saturday, July 30, 2011
Open Street Map Layers Indexes Styling Geoprocessing Routing Examples
11
Saturday, July 30, 2011
Saturday, July 30, 2011
13
Saturday, July 30, 2011
<?xml version="1.0" encoding="UTF-8"?> <osm version="0.6" generator="CGImap 0.0.2"> <bounds minlat="56.0437000" minlon="12.9388000" maxlat="56.0761000" maxlon="13.0109000"/> <node id="371662020" lat="56.0709040" lon="12.9639158" user="Grillo" uid="13957" visible="true" version="2" changeset="5465617" timestamp="2010-08-11T19:50:23Z"/> .... <way id="72090582" user="Craig Taverner" uid="48197" visible="true" version="1" changeset="5474347" timestamp="2010-08-12T16:15:06Z"> <nd ref="371662020"/> <nd ref="857081476"/> <nd ref="857081950"/> <nd ref="857081819"/> <nd ref="857081796"/> <nd ref="857081692"/> <nd ref="857081617"/> <nd ref="857081523"/> <tag k="highway" v="residential"/> <tag k="name" v="Nybrodalsvägen"/> </way> </osm>
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
OSM
Saturday, July 30, 2011
OSM
Dynamic Layers
Saturday, July 30, 2011
OSM Index (RTree)
Dynamic Layers
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
GeometryEncoder - encode, decode
Saturday, July 30, 2011
GeometryEncoder - encode, decode Property (wkt)
Saturday, July 30, 2011
GeometryEncoder - encode, decode Property (wkt) Properties (lon, lat)
Saturday, July 30, 2011
GeometryEncoder - encode, decode Property (wkt) Properties (lon, lat) Subgraph (ways, polygons)
Saturday, July 30, 2011
GeometryEncoder - encode, decode Property (wkt) Properties (lon, lat) Subgraph (ways, polygons) Domain specific (e.g. OSM)
Saturday, July 30, 2011
GeometryEncoder - encode, decode Property (wkt) Properties (lon, lat) Subgraph (ways, polygons) Domain specific (e.g. OSM) OSM Way encoding/decoding
Saturday, July 30, 2011
GeometryEncoder - encode, decode Property (wkt) Properties (lon, lat) Subgraph (ways, polygons) Domain specific (e.g. OSM) OSM Way encoding/decoding CRS, Geometry type
Saturday, July 30, 2011
GeometryEncoder - encode, decode Property (wkt) Properties (lon, lat) Subgraph (ways, polygons) Domain specific (e.g. OSM) OSM Way encoding/decoding CRS, Geometry type Styling
Saturday, July 30, 2011
GeometryEncoder - encode, decode Property (wkt) Properties (lon, lat) Subgraph (ways, polygons) Domain specific (e.g. OSM) OSM Way encoding/decoding CRS, Geometry type Styling Dynamic Layers
Saturday, July 30, 2011
GeometryEncoder - encode, decode Property (wkt) Properties (lon, lat) Subgraph (ways, polygons) Domain specific (e.g. OSM) OSM Way encoding/decoding CRS, Geometry type Styling Dynamic Layers Search
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
Illustrations: Wikipedia
Saturday, July 30, 2011
Saturday, July 30, 2011
OSM Index (RTree)
Dynamic Layers
Saturday, July 30, 2011
Index<Node> index = db.index().forNodes( "layer1"); Node n1 = db.createNode(); n1.setProperty( "lat", (double)56.2 ); n1.setProperty( "lon", (double)15.3 ); index.add( n1 ); Java: index.query( LayerNodeIndex.BBOX_QUERY, "[15.0, 16.0, 56.0, 57.0]" ); Cypher: START poi=(layer1,'bbox:[15.0, 16.0, 56.0, 57.0]') MATCH (poi) -[r] - (x) RETURN poi, r~TYPE, x.layer? Gremlin: g.idx('node')[[layer1: 'bbox:[15.0, 16.0, 56.0, 57.0]']]
Saturday, July 30, 2011
Saturday, July 30, 2011
<FeatureTypeStyle> <Rule> <ogc:Filter> <ogc:And> <ogc:PropertyIsEqualTo> <ogc:Function name="geometryType"> <ogc:PropertyName>the_geom</ogc:PropertyName> </ogc:Function> <ogc:Literal>LineString</ogc:Literal> </ogc:PropertyIsEqualTo> <ogc:Not> <ogc:PropertyIsNull> <ogc:PropertyName>highway</ogc:PropertyName> </ogc:PropertyIsNull> </ogc:Not> <ogc:PropertyIsEqualTo> <ogc:PropertyName>highway</ogc:PropertyName> <ogc:Literal>residential</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:And> </ogc:Filter> <Symbolizers>.......</> </Rule> </FeatureTypeStyle>
Saturday, July 30, 2011
<FeatureTypeStyle> <Rule> <Filter>.....</Filter> <LineSymbolizer> <Stroke> <CssParameter name="stroke">#909090</CssParameter> <CssParameter name="stroke-width">3</CssParameter> </Stroke> </LineSymbolizer> <LineSymbolizer> <Stroke> <CssParameter name="stroke">#ffff80</CssParameter> <CssParameter name="stroke-width">1</CssParameter> </Stroke> </LineSymbolizer> </Rule> </FeatureTypeStyle>
Saturday, July 30, 2011
require 'amanzi/sld' Amanzi::SLD::Config.config[:geometry_property] = 'the_geom' #Amanzi::SLD::Config.config[:verbose] = true sld = Amanzi::SLD::Document.new "Example Neo4j Spatial OSM Style" sld.comment "A style for residential streets" sld. add_line_symbolizer(:stroke => '#909090', :stroke_width => 3). add_line_symbolizer(:stroke => '#ffff80', :stroke_width => 1) do |f| f.op(:and) do |f| f.geometry = 'LineString' f.property.exists? 'highway' f.property['highway'] = 'residential' end end sld
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
33
Saturday, July 30, 2011
Outputs: GeoJSON, KML
33
Saturday, July 30, 2011
Outputs: GeoJSON, KML
33
Saturday, July 30, 2011
Outputs: GeoJSON, KML Accessors: ST_EndPoint
33
Saturday, July 30, 2011
Outputs: GeoJSON, KML Accessors: ST_EndPoint
33
Saturday, July 30, 2011
Outputs: GeoJSON, KML Accessors: ST_EndPoint Processing: ST_CLosest, ST_Disjoint
33
Saturday, July 30, 2011
Outputs: GeoJSON, KML Accessors: ST_EndPoint Processing: ST_CLosest, ST_Disjoint
33
Saturday, July 30, 2011
Outputs: GeoJSON, KML Accessors: ST_EndPoint Processing: ST_CLosest, ST_Disjoint Search: SearchWithin, SearchClosest, Route, etc
33
Saturday, July 30, 2011
Outputs: GeoJSON, KML Accessors: ST_EndPoint Processing: ST_CLosest, ST_Disjoint Search: SearchWithin, SearchClosest, Route, etc
33
Saturday, July 30, 2011
Outputs: GeoJSON, KML Accessors: ST_EndPoint Processing: ST_CLosest, ST_Disjoint Search: SearchWithin, SearchClosest, Route, etc Thanks Andreas Wilhelm!
33
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
h"p://www.transportdublin.ie/ ¡-‑ ¡Patrick ¡Fitzgerald ¡on ¡Neo4j
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
Saturday, July 30, 2011
Neo4j Spatial
Saturday, July 30, 2011
Neo4j Spatial Cypher, Gremlin, CQL dynamic querying
Saturday, July 30, 2011
Neo4j Spatial Cypher, Gremlin, CQL dynamic querying Graph Geoprocessing domain level - GSoC 2011
Saturday, July 30, 2011
Neo4j Spatial Cypher, Gremlin, CQL dynamic querying Graph Geoprocessing domain level - GSoC 2011 Index Performance optimizations
Saturday, July 30, 2011
Neo4j Spatial Cypher, Gremlin, CQL dynamic querying Graph Geoprocessing domain level - GSoC 2011 Index Performance optimizations Pluggable indexing, Composite Index
Saturday, July 30, 2011
Neo4j Spatial Cypher, Gremlin, CQL dynamic querying Graph Geoprocessing domain level - GSoC 2011 Index Performance optimizations Pluggable indexing, Composite Index Routing API support
Saturday, July 30, 2011
Neo4j Spatial Cypher, Gremlin, CQL dynamic querying Graph Geoprocessing domain level - GSoC 2011 Index Performance optimizations Pluggable indexing, Composite Index Routing API support OSM
Saturday, July 30, 2011
Neo4j Spatial Cypher, Gremlin, CQL dynamic querying Graph Geoprocessing domain level - GSoC 2011 Index Performance optimizations Pluggable indexing, Composite Index Routing API support OSM uDig OSM Topology editor - GSoC 2011
Saturday, July 30, 2011
Neo4j Spatial Cypher, Gremlin, CQL dynamic querying Graph Geoprocessing domain level - GSoC 2011 Index Performance optimizations Pluggable indexing, Composite Index Routing API support OSM uDig OSM Topology editor - GSoC 2011 OSM tests Germany, US
Saturday, July 30, 2011
Neo4j Spatial Cypher, Gremlin, CQL dynamic querying Graph Geoprocessing domain level - GSoC 2011 Index Performance optimizations Pluggable indexing, Composite Index Routing API support OSM uDig OSM Topology editor - GSoC 2011 OSM tests Germany, US Stitching for OSM datasets
Saturday, July 30, 2011
http://github.com/neo4j/neo4j-spatial http://neo4j.org
Saturday, July 30, 2011
http://neotechnology.com
44
Saturday, July 30, 2011