LocationTech Projects

1,827 views

Published on

LocationTech presentation from Eclipse Developers Day Sydney.

Libraries:
* JTS
* Mobile Map Tools
* GeoMesa
* Spatial4j

Processing:
* GeoTrellis
* SpatialHadopp / GeoJinni

Applications:
* GEOFF
* GeoGit
* GeoScript
* uDig

Thanks to Eclipse and Acuate for sponsoring the event.

Published in: Software, Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,827
On SlideShare
0
From Embeds
0
Number of Embeds
335
Actions
Shares
0
Downloads
11
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

LocationTech Projects

  1. 1. Jody Garnett Boundless Projects
  2. 2. Welcome 2 Jody Garnett Senior Software Engineer jgarnett@boundlessgeo.com @jodygarnett Open Source Geospatial Foundation OSGeo Incubation Chair GeoTools Project Officer Eclipse Foundation LocationTech Project Steering Committee LocationTech Technology Project Boundless Boundless provides geospatial tools and services for managing data and building applications. Projects GeoTools GeoServer uDig
  3. 3. 3 Loca%onTech
  4. 4. LocationTech “Loca&onTech  is  a  working  group  developing   advanced  loca&on  aware  technologies.” 4
  5. 5. 5 Members Strategic Participating Guest
  6. 6. Full Service Foundation Forge & Build IP mgmt Dev Process Licensing Model Community Member Network Governance Run by: Follows Eclipse Development Processes & IP Management 6
  7. 7. 7 Infrastructure
  8. 8. Working Groups Advanced Geospatial Software Internet of ThingsLong Term Support Embedded Systems Vendor neutral collaboration: ★265+ projects ★~1100 active devs ★205+ members ★9M+ users ★ Scientific Research 8
  9. 9. 0. Deny 1. Use 2. Contribute 3. Champion 4. Collaborate 5. Redefine Value Time Developer driven Business driven ★Widespread software adoption. ★Vibrant commercial ecosystem. From Bailetti & Carbone 2009 9 Commercialising open source
  10. 10. Contact info@locationtech.org @locationtech We are growing fast & need your ideas & participation http://locationtech.org and click LEARN MORE Andrew Ross andrew.ross@eclipse.org @42aross Contact  Loca%onTech 10
  11. 11. 11 Events
  12. 12. www.loca%onintelligence.net Location Intelligence Summit 2014 May  19-­‐21,  Washington  DC  Conven6on  Center Monday  –  Hands-­‐on  workshops Tuesday  –  Loca6on  Intelligence,  HERE,  and  Loca6onTech  tracks -­‐ “Loca%on  Analy%cs  and  Visual  Data  Discovery  …  New  Pathways  to  Business  Intelligence” -­‐ Sessions  on  BI,  LI,  Indoor  Posi%oning,  Open  Source  Geospa%al,  Big  Data,  Dashboards/Visual  Data  Discovery -­‐ Keynote:  Paul  Donato,  EVP/Research,  Nielsen Wednesday  –  Oracle  Spa6al  Summit -­‐ 3  technical  training  tracks  led  by  Oracle  experts:    raster,  LIDAR,  geocoding,  rou%ng -­‐ Performance  benchmarks,  Cer%fica%on  exam  prepara%on -­‐ Customer  sessions:    BI,  land  management,  LI  in  public  sector  &  retail;  SIG  User  Group
  13. 13. 6 cities By the numbers ★ 723 registrations ★ 640+ attendees ★ 56 speakers ★ Videos on YouTube ★ Positive feedback 13 Tour 2013
  14. 14. 3 continents http://tour.locationtech.org ★ Planning about to begin. ★ Sponsorship: $2K members $4.5K non-members 14 Tour 2014
  15. 15. 15 Visit http://georabble.org for fun local events! (Pun intended) GeoRabble All Stars Allied with Locate 14 Canberra (Monday 7 April) ★Pia Waugh – Open Data Ninja ★Julian Carver – Land Information New Zealand ★Denise McKenzie – Open Geospatial Consortium ★Mike Bradford – Landgate WA ★Jody Garnett – Boundless ★Chris Tucker – Mapstory Thanks to Sponsors LocationTech and Boundless
  16. 16. Libraries 16
  17. 17. JTS  Topology  Suite • This  is  the  “Rocket  Science”  of  GIS • Implementa%on  of  Geometry • OGC  Standard:  Simple  Features  for  SQL   • Vivid  Solu%ons • Mar%n  Davis  (Project  Lead) • License: • Eclipse  Distribu%on  License  <-­‐-­‐  BSD! • Eclipse  Public  License 17 Incoming!
  18. 18. Key to Open Source Spatial 18 Project Environment JTS Topology Suite Java JVM Languages GEOS C/C++ Net Topology Suite C# JSTS JavaScript (Partial Port) Shapely Python (via GEOS) RGeo Ruby (via GEOS) r-GEOS R (via GEOS)
  19. 19. Geometry Example 20 GeoTools Example: http://docs.geotools.org/latest/userguide/library/jts/geometry.html GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); Coordinate coord = new Coordinate(1, 1); Point point = geometryFactory.createPoint(coord);
  20. 20. WKT Example 21 GeoTools Example: http://docs.geotools.org/latest/userguide/library/jts/geometry.html GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); WKTReader reader = new WKTReader(geometryFactory); Point point = (Point) reader.read("POINT (1 1)");
  21. 21. Buffer Example 22 GeoTools Example: http://docs.geotools.org/latest/userguide/library/jts/geometry.html GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory( null ); WKTReader reader = new WKTReader( geometryFactory ); LineString line = (LineString) reader.read("LINESTRING(0 2, 2 0, 8 6)"); Geometry buffer = line.buffer( 0.75 );
  22. 22. Geometry Model 23
  23. 23. JTS TestBuilder Demo
  24. 24. Transform Example 25 GeoTools Example: http://docs.geotools.org/latest/userguide/library/referencing/crs.html CoordinateReferenceSystem wgs84 = CRS.decode("EPSG:4326"); CoordinateReferenceSystem google = CRS.decode("EPSG:3857"); MathTransform transform = CRS.findMathTransform(wgs84, google, false); Geometry target = JTS.transform( geometry, transform );
  25. 25. Mobile  Map  Tools • SDK  For  na%ve  mobile  applica%ons. • Supports: • Mobile  maps  in  2D,  2.5D  and  3D • Works  on  iOS,  Android,  webGL • Built  using  C++  and  translated  to  Java  and  JavaScript • License:  Eclipse  Distribu%on  License  1.0  (BSD) 26 Incoming!
  26. 26. GeoMesa • Key/value  store • Supports:   • Distributed  &  highly  scalable • Based  on  Accumulo • License • Apache  License,  Version  2.0 27 Approved!
  27. 27. Spa%al4j • Adds  “Geometry  on  Curve”  to  JTS • Supports: • Geometry  on  a  Spherical • Geometry  on  a  Cylinder • Euclidean  (via  JTS) • Great  Circle  Distance  Calculators • License:  Apache  License,  Version  2.0 28 Incoming
  28. 28. A romance in many dimensions 29 Shape Euclidean Cylindrical Spherical Point Y Y Y Rectangle Y Y Y Circle Y Y LineString Y Buffered L/S Y Polygon Y Y ShapeCollection Y Y Y
  29. 29. Distance Example 30 SpatialContext ctx = SpatialContext.GEO; Circle sydney = ctx.makeCircle(151.3,33.9, 0.3); Point perth = ctx.makePoint(115.8,32.9); double distance = ctx.calcDistance(sydney.getCenter(), perth); double km = DistanceUtils.degrees2Dist( distance, DistanceUtils.EARTH_MEAN_RADIUS_KM)
  30. 30. 31 Processing
  31. 31. GeoTrellis • Real-­‐%me  distributed  processing • Supports:   • Low  latency  &  Distributed • Highly  scalable • Based  on  Scala,  Akka,  &  Spark • License:  Apache  License,  Version  2.0 32 Approved!
  32. 32. GeoTrellis Chattanooga Demo 33 http://demo.geotrellis.com/chatta/
  33. 33. Spa%alHadoop • Batch  processing • MapReduce  framework  for  efficient  processing   of  spa%al  opera%ons • Supports:   • Spa%al  data  types  &  indexing • Based  on  Hadoop • Highly  scalable • NOTE:  renaming  to  GeoJinni • License:  Apache  License,  Version  2.0 34 Incoming!
  34. 34. Applica%ons 35
  35. 35. GEOFF • Geo  Fast  Forward • Embed  Simple  Maps  in  Eclipse  RCP • Querying  a  geocoding  service • Use  OpenLayers  3.0  as  a  resource  bundle • SWT  Component  wrapping  embedded  browser • Fluent  API  so  you  do  not  have  to  know  EMF • License:  Eclipse  Public  License  1.0 36 Approved!
  36. 36. GeoGit • Distributed  data  store • Supports:   • Distributed,  off-­‐line  opera%on • Versioning,  compare  &  merge • Push/pull  data • License:  BSD  License 37 Incoming Project! Incoming!
  37. 37. GeoGit  Story/Demo 38
  38. 38. GeoScript • Adds  spa%al  capabili%es  to  dynamic scrip%ng  languages. • Supports: • Groovy,  JavaScript,  Python,  and  Scala • Backed  by  the  GeoTools  library • geometry,  data  access  and  rendering • Use  stand-­‐alone  or  embedded • License:  MIT  License 39 Approved!
  39. 39. JavaScript 40 >> var geom = require("geoscript/geom"); >> var p = new geom.Point([-111.0, 45.7]); >> p <Point [-111, 45.7]> >> var proj = require("geoscript/proj"); >> var p2 = proj.transform(p, "epsg:4326", "epsg:26912"); >> p2 <Point [500000, 5060716.31816507]> >> var poly = p2.buffer(100); >> poly.area 31214.451522458345
  40. 40. Python 41 >>> from geoscript import geom >>> p = geom.Point(-111.0, 45.7) >>> p POINT(-111 45.7) >>> from geoscript import proj >>> p2 = proj.transform(p, 'epsg:4326', 'epsg:26912') >>> p2 POINT (499999.42501775385 5060716.092032814) >>> poly = p2.buffer(100) >>> poly.getArea() 31214.45152247697
  41. 41. Scala 42 scala> import org.geoscript.geometry._ scala> import org.geoscript.projection._ scala> val p = Point(-110, 45.7) in Projection("EPSG:4326") p: org.geoscript.geometry.Point = POINT (-110 45.7) scala> val p2 = p in Projection("EPSG:26912") p2: org.geoscript.geometry.Point = POINT (-370416.94184711506 -7935053.5498699695) scala> p2.buffer(100).area res0: Double = 31214.451522477902
  42. 42. Groovy 43 groovy:000> import geoscript.geom.* groovy:000> import geoscript.proj.Projection groovy:000> p = new Point(-111, 45.7) ===> POINT (-111 45.7) groovy:000> p2 = Projection.transform(p, 'epsg:4326', 'epsg: 26912') ===> POINT (499999.42501775385, 5060716.092032814) groovy:000> poly = p2.buffer(100) groovy:000> poly.area ===> 31214.451522477902
  43. 43. uDig • User-­‐friendly  Desktop  Internet  GIS • Supports:   • Desktop  GIS • Based  on  Eclipse  RCP • Reusable  components  for  RCP  Developers • Supports  industry  standard  formats  and  services • e.g.  WMS,  WFS,  etc. • License: • Eclipse  Distribu%on  License • Eclipse  Public  License 44 Approved!
  44. 44. 45
  45. 45. Quick uDig Demo 46
  46. 46. Eclipse Foundation 47
  47. 47. 204 Members and growing. 48 Eclipse Foundation Members
  48. 48. Predictable Release Schedule • Dozens  of  projects,  millions  of  lines  of  code   releasing  each  year  on  %me  to  the  day  for  9   years  straight. • 265+  open  source  projects  and  growing. 49 Eclipse 3.0 Eclipse 3.1 Casllisto Europa Ganymede Galileo Helios Indigo Juno Kepler Luna 17 18 24 33 46 55 58 3 7 10 21 23 33 39 62 71 71 76 Projects Million LOC
  49. 49. EGit Project CDT Project WTP Project Linux Tools Project (Percentage of contributions for each project) 50 Industry Collaboration

×