neo4j spatial gis for the rest
play

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


  1. Neo4j Spatial - GIS for the rest of us. OSCON Data 2011 #neo4j Peter Neubauer @peterneubauer Neo Technology peter@neotechnology.com Saturday, July 30, 2011

  2. We are hiring. Now. Contact me. #neo4j @peterneubauer peter@neotechnology.com Saturday, July 30, 2011

  3. Neo4j - ? Saturday, July 30, 2011

  4. The Neo4j model: Property Graph Saturday, July 30, 2011

  5. The Neo4j model: Property Graph 1 2 3 Saturday, July 30, 2011

  6. The Neo4j model: Property Graph 1 2 3 Saturday, July 30, 2011

  7. The Neo4j model: Property Graph name = “Emil” age = 29 sex = “yes” 1 2 type = KNOWS 3 time = 4 years type = car vendor = “SAAB” model = “95 Aero” Saturday, July 30, 2011

  8. Saturday, July 30, 2011

  9. Impact Analytics, CMDB, Network Management, Provisioning Saturday, July 30, 2011

  10. Show me! Saturday, July 30, 2011

  11. Neo4j Spatial Saturday, July 30, 2011

  12. Components 9 Saturday, July 30, 2011

  13. Components Core 9 Saturday, July 30, 2011

  14. Components Core Storage 9 Saturday, July 30, 2011

  15. Components Core Storage Search 9 Saturday, July 30, 2011

  16. Components Core Storage Search GeoProcessing 9 Saturday, July 30, 2011

  17. Components Core Storage Search GeoProcessing Import/export 9 Saturday, July 30, 2011

  18. Components Core Storage Search GeoProcessing Import/export Extensions 9 Saturday, July 30, 2011

  19. Components Core Storage Search GeoProcessing Import/export Extensions Geotools & GeoServer 9 Saturday, July 30, 2011

  20. Components Core Storage Search GeoProcessing Import/export Extensions Geotools & GeoServer uDig 9 Saturday, July 30, 2011

  21. Components Core Storage Search GeoProcessing Import/export Extensions Geotools & GeoServer uDig OpenStreetMap 9 Saturday, July 30, 2011

  22. Neo4j dynamic layers Geometry Layer1 Encoder Dynamic Layer2 Query Dynamic Styles Layer3 Multidim Dynamic Indexes Meta-Inf Connected domain data Neo4j Spatial GIS and Spatial stacks Saturday, July 30, 2011

  23. Topics Open Street Map Layers Indexes Styling Geoprocessing Routing Examples 11 Saturday, July 30, 2011

  24. Open StreetMap Saturday, July 30, 2011

  25. OpenStreetMap - Topology 13 Saturday, July 30, 2011

  26. OSM Files <?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

  27. OpenStreetMap Saturday, July 30, 2011

  28. OpenStreetMap Saturday, July 30, 2011

  29. OpenStreetMap Saturday, July 30, 2011

  30. OpenStreetMap OSM Saturday, July 30, 2011

  31. OpenStreetMap Dynamic OSM Layers Saturday, July 30, 2011

  32. OpenStreetMap Dynamic OSM Layers Index (RTree) Saturday, July 30, 2011

  33. Layers Saturday, July 30, 2011

  34. From Graph to Layer Saturday, July 30, 2011

  35. From Graph to Layer GeometryEncoder - encode, decode Saturday, July 30, 2011

  36. From Graph to Layer GeometryEncoder - encode, decode Property (wkt) Saturday, July 30, 2011

  37. From Graph to Layer GeometryEncoder - encode, decode Property (wkt) Properties (lon, lat) Saturday, July 30, 2011

  38. From Graph to Layer GeometryEncoder - encode, decode Property (wkt) Properties (lon, lat) Subgraph (ways, polygons) Saturday, July 30, 2011

  39. From Graph to Layer GeometryEncoder - encode, decode Property (wkt) Properties (lon, lat) Subgraph (ways, polygons) Domain specific (e.g. OSM) Saturday, July 30, 2011

  40. From Graph to Layer GeometryEncoder - encode, decode Property (wkt) Properties (lon, lat) Subgraph (ways, polygons) Domain specific (e.g. OSM) OSM Way encoding/decoding Saturday, July 30, 2011

  41. From Graph to Layer 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

  42. From Graph to Layer 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

  43. From Graph to Layer 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

  44. From Graph to Layer 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

  45. Dynamic Layers, uDig Saturday, July 30, 2011

  46. Dynamic Layers, GeoServer Saturday, July 30, 2011

  47. Indexes Saturday, July 30, 2011

  48. Multiple indexes - GIS Illustrations: Wikipedia Saturday, July 30, 2011

  49. OpenStreetMap Saturday, July 30, 2011

  50. OpenStreetMap Dynamic OSM Layers Index (RTree) Saturday, July 30, 2011

  51. In - graph indexing 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

  52. Styling Saturday, July 30, 2011

  53. Styling SLD <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

  54. Styling SLD <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

  55. Styling Ruby DSL 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

  56. Dynamic Layers, styling Saturday, July 30, 2011

  57. Dynamic Layers, styling Saturday, July 30, 2011

  58. Dynamic Layers, styling Saturday, July 30, 2011

  59. Dynamic Layers, styling Saturday, July 30, 2011

  60. Geoprocessing Saturday, July 30, 2011

  61. GSoC: PostGIS -> OSM Graph 33 Saturday, July 30, 2011

  62. GSoC: PostGIS -> OSM Graph Outputs: GeoJSON, KML 33 Saturday, July 30, 2011

  63. GSoC: PostGIS -> OSM Graph Outputs: GeoJSON, KML 33 Saturday, July 30, 2011

  64. GSoC: PostGIS -> OSM Graph Outputs: GeoJSON, KML Accessors: ST_EndPoint 33 Saturday, July 30, 2011

Recommend


More recommend