LocationTech 
Projects
Introduction 
Getting the party started
Jody Garnett 
Senior Software Engineer 
Boundless 
Welcome 
Projects: 
GeoTools, GeoServer,uDig 
Eclipse Foundation 
LocationTech PSC, Technology Project 
OSGeo 
Incubation Chair, GeoTools Officer 
Andrew Ross 
Director, Ecosystem Dev. 
Eclipse Foundation 
GroupsLocationTech working group 
Science working group 
Long Term Support (LTS) program 
Common Build Infrastructure program 
Business Development 
Membership Services
LocationTech 
“LocationTech is a working group developing 
advanced location aware technologies.”
Members 
Strategic 
Participating 
Guest
Libraries
JTS Topology Suite 
Martin Davis 
Senior Technical Architect 
Vivid Solutions Inc. 
Projects: 
JTS, JEQL, JCS, Proj4J, OpenJUMP GIS 
OSGeo 
Charter Member 
Vivid Solutions
JTS Topology Suite 
● Java API for Geometry 
● OGC Standard: Simple Features for SQL 
● One of the “Hard Parts” of Geospatial 
● License 
● Eclipse Distribution License (== BSD !) 
● Eclipse Public License 
● History 
● Version 1.0 - 2001 
● Version 1.13 - 2012 
● Version 1.14 - 2014 Q4
Key to Open Source Spatial 
Project Language 
JTS Topology 
Java 
Suite 
all JVM 
Languages 
JSTS JavaScript (Partial Port) 
Net Topology 
C# 
Suite 
GEOS C/C++ 
Shapely Python (via GEOS) 
RGeo Ruby (via GEOS) 
r-GEOS R (via GEOS)
JTS Geometry Model (OGC 99-049)
JTS Functions 
● Spatial Predicates 
● Intersects, Contains, Within, Covers, etc 
● Geometry Validation 
● Overlay Boolean operations 
● Intersection, Union, Difference, SymDifference 
● Metrics 
● Length, Area, Distance, Hausdorff Distance 
● Buffer 
● Pos/Neg, Cap/Join styles 
● Polygonization 
● Delaunay Triangulation 
● Voronoi Diagram
Geometry Example 
GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); 
Coordinate coord = new Coordinate(1, 1); 
Point point = geometryFactory.createPoint(coord);
WKT Example 
GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); 
WKTReader reader = new WKTReader(geometryFactory); 
Point point = (Point) reader.read("POINT (1 1)");
Buffer Example 
GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); 
WKTReader reader = new WKTReader( geometryFactory ); 
LineString line = (LineString) reader.read("LINESTRING(0 2, 2 0, 8 6)"); 
Geometry buffer = line.buffer( 0.75 );
JTS Test Builder
Mobile Map Tools 
Manuel de la 
Calle Alonso 
Projects 
Mobile Map Tools 
Eclipse Foundation 
LocationTech
Mobile Map Tools 
• SDK For native mobile applications. 
• 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 Distribution License 1.0 (BSD)
Capabilities 
Vector tiles: 
● Raster 
● Vectorial 
● 3D models 
● offline maps 
● complex symbology 
● native
New: Vector Tiles 
● Postgis 
● GeoJSON pyramid 
● Native support on MMT
New: Point Cloud Streaming 
● Berkeley DB 
● Import and ordered 
point process 
● Point cloud streaming 
● Native support on MMT 
● The cloud save the shape 
(we are always sending meaningful points, that 
saves the shape of the point cloud)
Anthony Fox 
Director, Data Science 
Commonwealth Computer Research 
Projects: 
GeoMesa 
Eclipse Foundation 
LocationTech 
LinkedIn 
https://www.linkedin.com/pub/anthony-fox/5/467/574
• Distributed Spatio-temporal Database 
• Built on Hadoop and Accumulo 
• Scales to billions of features 
• Written in Scala 
• Apache License, v2.0
How GeoMesa Fits in Cloud Stack 
K 
A 
F 
K 
A 
Accumulo 
HDFS 
Cloud Stack and Distributed Resources
Jumping Into “Big Data” 
Hop on over from PostGIS…. 
to GeoMesa 
picturespk.com
Query Planning
Connecting to Spark
Spark RDD
Aggregating by Day
Plotting in R 
14/08/18 01:05:57 INFO SparkContext: Job finished: collect at 
Runner.scala:61, took 44.154914093 s 
(20140801,398) 
(20140802,409) 
(20140803,328) 
(20140804,374) 
(20140805,354) 
(20140806,377) 
(20140807,328) 
(20140808,326) 
(20140809,365) 
(20140810,542) 
(20140811,1081) 
(20140812,721) 
(20140813,666) 
(20140814,1184) 
(20140815,964)
Predictive Threat Surface
Roadmap and Contact Info 
• Road Map 
• Release Imminent (IP Review) 
• Analytics 
• Contact & Tutorials 
Anthony Fox & Andrew Hulbert (booth) 
http://www.geomesa.org 
geomesa-users@locationtech.org 
geomesa-dev@locationtech.org
Spatial4j 
David Smiley Apache Software Foundation 
Committer & PMC of Lucene/Solr 
Eclipse Foundation 
LocationTech PMC 
Freelance Lucene/Solr 
developer/consultant
Spatial4j 
Shapes! 
• Point, Rect, Circle, Line, BufferedLine, Polygon, 
and collections of these 
• Cartesian, Cartesian with world-wrap 
(cylindrical), and Spherical/Geodesic 
• Computes intersection relationship & bbox 
Also 
• Computes point distance & shape area 
• Extensible WKT parsing and 
serialization/deserialization utilities 
License: ASLv2
The Shape interface 
• interface Shape { 
• Point getCenter(); 
• Rectangle getBoundingBox(); 
• boolean hasArea(); 
• double getArea(); 
• SpatialRelation relate(Shape other); 
• Must support Point & Rectangle 
• enum SpatialRelation 
• DISJOINT, INTERSECTS, WITHIN, CONTAINS 
• Note: simpler set than the “DE-9IM” spatial standard 
• no “equals” or “touches”
A romance in many dimensions 
Shape Euclidean Cylindrical Spherical 
Point Y Y Y 
Rectangle Y Y Y 
Circle Y Y 
LineString Y 
Buffered L/S Y 
Polygon Y Y 
Shape Collection Y Y Y
Distance example 
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)
More code samples 
SpatialContext ctx = SpatialContext.GEO; 
Rectangle r = ctx.makeRectangle(-71, -70, 42, 43); 
Circle c = ctx.makeCircle(-72, 42, 1); 
SpatialRelation rel = r.relate(c); 
System.out.println(rel); 
rel.intersects();//boolean 
Distances (including circle 
radius) are in “Degrees”, not 
ctx = JtsSpatialContext.GEO; 
Shape s = ctx.readShape(“POLYGON ((30 10, 10 20, 20 40, 40 40, 30 10))”); 
double distanceDegrees = ctx.getDistCalc().distance( 
ctx.makePoint(2, 2), ctx.makePoint(3, 3) ); 
radians or KM
Recent Activity 
Thanks to the interns!: 
● Rebecca Alford via Open-Academy: 
○ geodesic polygons 
● Chris Pavlicek via Open-Academy: 
○ geodesic buffered lines 
● Evana Gizzi, MITRE intern: 
○ geodesic circle polygonizer
Processing
Robert 
Cheetham 
Founder and CEO 
Azavea 
Projects 
GeoTrellis 
Eclipse Foundation 
LocationTech 
GeoTrellis
GeoTrellis 
• Scala geospatial library and platform for distributed real-time and batch processing 
• Supports: 
• Low latency & Distributed processing of raster data 
• Highly scalable 
• Based on Scala, Akka, & Spark 
• License: 
• Apache License, Version 2.0
GeoTrellis Chattanooga Demo 
http://demo.geotrellis.com/chatta
GeoTrellis subprojects 
● proj4 
● PortWrapper of Proj4j 
● vector 
● Scala wrapper for JTS 
● Reprojection support 
● GeoJSON readwrite 
● slick 
● raster 
● Vector data to/from PostGIS 
● Raster IO, map algebra 
● Vector <-> Raster operations 
● engine 
● Distributed Akka execution engine 
for raster processing
GeoTrellis subprojects (cont.) 
● gdal 
● Read over 130 raster file formats using GDAL 
● Wrapper around GDAL java bindings 
● spark 
● Aims to add comprehensive geospatial support to 
Apache Spark 
● Reproject, mosaic, tile and pyramid geotiff raster data 
stored in HDFS into Accumulo or HDFS. 
● RasterRDD with tile-based distributed operations 
● Fast tile selection out of Accumulo.
Zonal Summary Example
Weighted Overlay Example
GeoTrellis Spark 
geospatial @ scale
GeoTrellis Spark
GeoTrellis 
● Functional programming with Scala 
● To quote Anthony Fox of GeoMesa, “There’s a 
confluence of geo and spark happening at LocationTech” 
● Big data, cluster computing with Apache Spark & 
Accumulo 
● Both GeoMesa and GeoTrellis use Accumulo. Spark is 
becoming a very popular alternative to Hadoop.
Ahmed Eldawy 
University of Minnesota 
Projects 
GeoJini (SpatialHadoop) 
Eclipse Foundation 
LocationTech 
GeoJini
GeoJini 
• Batch processing 
• MapReduce framework for efficient processing of spatial 
operations 
• Supports: 
• Spatial data types & indexing 
• Based on Hadoop 
• Highly scalable 
• License: 
• Apache License, Version 2.0
Applications
Geo Fast Forward (GeoFF) 
Erdal Karaca 
Projects 
GeoFF 
Eclipse Foundation 
LocationTech
Geo Fast Forward (GeoFF) 
● 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
Define GeoMap for RCP Developers
New: GeoFF in Eclipse 4
GeoGig 
Gabriel 
Roldán 
Software Developer 
Boundless 
Projects 
GeoGig(GeoGit), GeoTools, GeoServer 
Eclipse Foundation 
LocationTech 
OSGeo 
Charter Member
GeoGig 
• Distributed data storage and collaboration 
• “geogig isn’t git” 
• Supports: 
• Distributed, off-line operation 
• Versioning, compare & merge 
• Push/pull data 
• License: 
• Eclipse Distribution License (BSD)
Quickstart 
~$ geogig help 
List geogig commands 
~/new-folder $ geogig init 
Initialise a geogig repository in new-folder 
~/new-folder $ geogig shp import your_shapefile 
Import a .shp file (or OSM, SpatialLite or PostGIS) 
~/new-folder $ geogig ls 
What's in your geogig repository 
~/new-folder $ geogig status 
What you can commit to a snapshot
GeoGig branching
QGIS plugin
GeoGig spatial diffs
GeoGig Update 
News: 
● Download: 1.0-beta1 today 
● Thanks Ben for a great FOSS4G workshop 
Incubation: 
● LGPL → BSD 
● packages → org.locationtech.geogig 
● “initial code contribution” submitted 
(Thanks to Sharon for patient Q&A)
GeoScript 
Justin 
Deoliveira 
VP Engineering 
Boundless 
Projects 
GeoScript, GeoTools,GeoServer, 
OpenGeo Suite 
Eclipse Foundation 
LocationTech 
OSGeo 
Charter Member
GeoScript 
● Adds spatial capabilities 
to dynamic scripting 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 
● http://geoscript.github.io/foss4g2014-talk/#/
JavaScript 
>> 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
Python 
>>> 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
Scala 
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
Groovy 
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
GeoScript Update 
● Jared working hard 
● Curved geometries, GeoPackage, MBTiles 
● Working on a common versioning scheme 
● Standardizing on GeoTools version 
● Early stages of incubation 
● TODO: Logo :)
Jody Garnett 
Senior Software Engineer 
Boundless 
Projects: 
GeoTools, GeoServer,uDig 
Frank Gasdorf 
Software Developer 
& GIS Professional 
Plath GmbH 
Projects 
uDig 
Eclipse Foundation 
LocationTech 
uDig
● User-friendly Desktop Internet GIS 
● Based on Eclipse Framework 
● Reusable RCP components 
● Java core libraries 
uDig 
(JTS, GeoTools, jgrasstools,imageio-ext) 
● Supports: 
● Industry standards formats and services formats 
(WMS, WFS, KML, GeoTiff, etc) 
● License: Eclipse Public License EPL and BSD
uDig SDK 
Provides the best of Open Source Mapping for the Eclipse RCP Developer
User-friendly Desktop Internet GIS
JGrass - Hydrological Modeling
DEWS Distance Early Warning System 
https://www.youtube.com/watch?v=-lGgkOd-Tl4
Globema - ELGrid
LocationTech
Full Service Foundation 
IP 
mgmt 
Dev 
Process 
License 
Model 
Forge 
& 
Build 
Community 
Member 
Network 
Governance
Infrastructure
Events: Tour 2014 
18 Cities around the world. 
Speaking & sponsorship opportunities. 
Great spirit of camraderie & learning
Events: FOSS4G-NA
Questions? 
(Hand up for a microphone, project leads to the front)
Q&A 
● Q: Do I have to use Eclipse infrastructure?A: See 
https://github.com/locationtech(Thanks to the 
Verte.x for sorting out how)

LocationTech Projects

  • 1.
  • 2.
  • 3.
    Jody Garnett SeniorSoftware Engineer Boundless Welcome Projects: GeoTools, GeoServer,uDig Eclipse Foundation LocationTech PSC, Technology Project OSGeo Incubation Chair, GeoTools Officer Andrew Ross Director, Ecosystem Dev. Eclipse Foundation GroupsLocationTech working group Science working group Long Term Support (LTS) program Common Build Infrastructure program Business Development Membership Services
  • 4.
    LocationTech “LocationTech isa working group developing advanced location aware technologies.”
  • 5.
  • 6.
  • 7.
    JTS Topology Suite Martin Davis Senior Technical Architect Vivid Solutions Inc. Projects: JTS, JEQL, JCS, Proj4J, OpenJUMP GIS OSGeo Charter Member Vivid Solutions
  • 8.
    JTS Topology Suite ● Java API for Geometry ● OGC Standard: Simple Features for SQL ● One of the “Hard Parts” of Geospatial ● License ● Eclipse Distribution License (== BSD !) ● Eclipse Public License ● History ● Version 1.0 - 2001 ● Version 1.13 - 2012 ● Version 1.14 - 2014 Q4
  • 9.
    Key to OpenSource Spatial Project Language JTS Topology Java Suite all JVM Languages JSTS JavaScript (Partial Port) Net Topology C# Suite GEOS C/C++ Shapely Python (via GEOS) RGeo Ruby (via GEOS) r-GEOS R (via GEOS)
  • 11.
    JTS Geometry Model(OGC 99-049)
  • 12.
    JTS Functions ●Spatial Predicates ● Intersects, Contains, Within, Covers, etc ● Geometry Validation ● Overlay Boolean operations ● Intersection, Union, Difference, SymDifference ● Metrics ● Length, Area, Distance, Hausdorff Distance ● Buffer ● Pos/Neg, Cap/Join styles ● Polygonization ● Delaunay Triangulation ● Voronoi Diagram
  • 13.
    Geometry Example GeometryFactorygeometryFactory = JTSFactoryFinder.getGeometryFactory(); Coordinate coord = new Coordinate(1, 1); Point point = geometryFactory.createPoint(coord);
  • 14.
    WKT Example GeometryFactorygeometryFactory = JTSFactoryFinder.getGeometryFactory(); WKTReader reader = new WKTReader(geometryFactory); Point point = (Point) reader.read("POINT (1 1)");
  • 15.
    Buffer Example GeometryFactorygeometryFactory = JTSFactoryFinder.getGeometryFactory(); WKTReader reader = new WKTReader( geometryFactory ); LineString line = (LineString) reader.read("LINESTRING(0 2, 2 0, 8 6)"); Geometry buffer = line.buffer( 0.75 );
  • 16.
  • 17.
    Mobile Map Tools Manuel de la Calle Alonso Projects Mobile Map Tools Eclipse Foundation LocationTech
  • 18.
    Mobile Map Tools • SDK For native mobile applications. • 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 Distribution License 1.0 (BSD)
  • 19.
    Capabilities Vector tiles: ● Raster ● Vectorial ● 3D models ● offline maps ● complex symbology ● native
  • 20.
    New: Vector Tiles ● Postgis ● GeoJSON pyramid ● Native support on MMT
  • 21.
    New: Point CloudStreaming ● Berkeley DB ● Import and ordered point process ● Point cloud streaming ● Native support on MMT ● The cloud save the shape (we are always sending meaningful points, that saves the shape of the point cloud)
  • 22.
    Anthony Fox Director,Data Science Commonwealth Computer Research Projects: GeoMesa Eclipse Foundation LocationTech LinkedIn https://www.linkedin.com/pub/anthony-fox/5/467/574
  • 23.
    • Distributed Spatio-temporalDatabase • Built on Hadoop and Accumulo • Scales to billions of features • Written in Scala • Apache License, v2.0
  • 24.
    How GeoMesa Fitsin Cloud Stack K A F K A Accumulo HDFS Cloud Stack and Distributed Resources
  • 25.
    Jumping Into “BigData” Hop on over from PostGIS…. to GeoMesa picturespk.com
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
    Plotting in R 14/08/18 01:05:57 INFO SparkContext: Job finished: collect at Runner.scala:61, took 44.154914093 s (20140801,398) (20140802,409) (20140803,328) (20140804,374) (20140805,354) (20140806,377) (20140807,328) (20140808,326) (20140809,365) (20140810,542) (20140811,1081) (20140812,721) (20140813,666) (20140814,1184) (20140815,964)
  • 31.
  • 32.
    Roadmap and ContactInfo • Road Map • Release Imminent (IP Review) • Analytics • Contact & Tutorials Anthony Fox & Andrew Hulbert (booth) http://www.geomesa.org geomesa-users@locationtech.org geomesa-dev@locationtech.org
  • 33.
    Spatial4j David SmileyApache Software Foundation Committer & PMC of Lucene/Solr Eclipse Foundation LocationTech PMC Freelance Lucene/Solr developer/consultant
  • 34.
    Spatial4j Shapes! •Point, Rect, Circle, Line, BufferedLine, Polygon, and collections of these • Cartesian, Cartesian with world-wrap (cylindrical), and Spherical/Geodesic • Computes intersection relationship & bbox Also • Computes point distance & shape area • Extensible WKT parsing and serialization/deserialization utilities License: ASLv2
  • 35.
    The Shape interface • interface Shape { • Point getCenter(); • Rectangle getBoundingBox(); • boolean hasArea(); • double getArea(); • SpatialRelation relate(Shape other); • Must support Point & Rectangle • enum SpatialRelation • DISJOINT, INTERSECTS, WITHIN, CONTAINS • Note: simpler set than the “DE-9IM” spatial standard • no “equals” or “touches”
  • 36.
    A romance inmany dimensions Shape Euclidean Cylindrical Spherical Point Y Y Y Rectangle Y Y Y Circle Y Y LineString Y Buffered L/S Y Polygon Y Y Shape Collection Y Y Y
  • 37.
    Distance example SpatialContextctx = 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)
  • 38.
    More code samples SpatialContext ctx = SpatialContext.GEO; Rectangle r = ctx.makeRectangle(-71, -70, 42, 43); Circle c = ctx.makeCircle(-72, 42, 1); SpatialRelation rel = r.relate(c); System.out.println(rel); rel.intersects();//boolean Distances (including circle radius) are in “Degrees”, not ctx = JtsSpatialContext.GEO; Shape s = ctx.readShape(“POLYGON ((30 10, 10 20, 20 40, 40 40, 30 10))”); double distanceDegrees = ctx.getDistCalc().distance( ctx.makePoint(2, 2), ctx.makePoint(3, 3) ); radians or KM
  • 39.
    Recent Activity Thanksto the interns!: ● Rebecca Alford via Open-Academy: ○ geodesic polygons ● Chris Pavlicek via Open-Academy: ○ geodesic buffered lines ● Evana Gizzi, MITRE intern: ○ geodesic circle polygonizer
  • 40.
  • 41.
    Robert Cheetham Founderand CEO Azavea Projects GeoTrellis Eclipse Foundation LocationTech GeoTrellis
  • 42.
    GeoTrellis • Scalageospatial library and platform for distributed real-time and batch processing • Supports: • Low latency & Distributed processing of raster data • Highly scalable • Based on Scala, Akka, & Spark • License: • Apache License, Version 2.0
  • 43.
    GeoTrellis Chattanooga Demo http://demo.geotrellis.com/chatta
  • 44.
    GeoTrellis subprojects ●proj4 ● PortWrapper of Proj4j ● vector ● Scala wrapper for JTS ● Reprojection support ● GeoJSON readwrite ● slick ● raster ● Vector data to/from PostGIS ● Raster IO, map algebra ● Vector <-> Raster operations ● engine ● Distributed Akka execution engine for raster processing
  • 45.
    GeoTrellis subprojects (cont.) ● gdal ● Read over 130 raster file formats using GDAL ● Wrapper around GDAL java bindings ● spark ● Aims to add comprehensive geospatial support to Apache Spark ● Reproject, mosaic, tile and pyramid geotiff raster data stored in HDFS into Accumulo or HDFS. ● RasterRDD with tile-based distributed operations ● Fast tile selection out of Accumulo.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
    GeoTrellis ● Functionalprogramming with Scala ● To quote Anthony Fox of GeoMesa, “There’s a confluence of geo and spark happening at LocationTech” ● Big data, cluster computing with Apache Spark & Accumulo ● Both GeoMesa and GeoTrellis use Accumulo. Spark is becoming a very popular alternative to Hadoop.
  • 51.
    Ahmed Eldawy Universityof Minnesota Projects GeoJini (SpatialHadoop) Eclipse Foundation LocationTech GeoJini
  • 52.
    GeoJini • Batchprocessing • MapReduce framework for efficient processing of spatial operations • Supports: • Spatial data types & indexing • Based on Hadoop • Highly scalable • License: • Apache License, Version 2.0
  • 53.
  • 54.
    Geo Fast Forward(GeoFF) Erdal Karaca Projects GeoFF Eclipse Foundation LocationTech
  • 55.
    Geo Fast Forward(GeoFF) ● 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
  • 56.
    Define GeoMap forRCP Developers
  • 57.
    New: GeoFF inEclipse 4
  • 58.
    GeoGig Gabriel Roldán Software Developer Boundless Projects GeoGig(GeoGit), GeoTools, GeoServer Eclipse Foundation LocationTech OSGeo Charter Member
  • 59.
    GeoGig • Distributeddata storage and collaboration • “geogig isn’t git” • Supports: • Distributed, off-line operation • Versioning, compare & merge • Push/pull data • License: • Eclipse Distribution License (BSD)
  • 60.
    Quickstart ~$ geogighelp List geogig commands ~/new-folder $ geogig init Initialise a geogig repository in new-folder ~/new-folder $ geogig shp import your_shapefile Import a .shp file (or OSM, SpatialLite or PostGIS) ~/new-folder $ geogig ls What's in your geogig repository ~/new-folder $ geogig status What you can commit to a snapshot
  • 61.
  • 62.
  • 63.
  • 64.
    GeoGig Update News: ● Download: 1.0-beta1 today ● Thanks Ben for a great FOSS4G workshop Incubation: ● LGPL → BSD ● packages → org.locationtech.geogig ● “initial code contribution” submitted (Thanks to Sharon for patient Q&A)
  • 65.
    GeoScript Justin Deoliveira VP Engineering Boundless Projects GeoScript, GeoTools,GeoServer, OpenGeo Suite Eclipse Foundation LocationTech OSGeo Charter Member
  • 66.
    GeoScript ● Addsspatial capabilities to dynamic scripting 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 ● http://geoscript.github.io/foss4g2014-talk/#/
  • 67.
    JavaScript >> vargeom = 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
  • 68.
    Python >>> fromgeoscript 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
  • 69.
    Scala scala> importorg.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
  • 70.
    Groovy groovy:000> importgeoscript.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
  • 71.
    GeoScript Update ●Jared working hard ● Curved geometries, GeoPackage, MBTiles ● Working on a common versioning scheme ● Standardizing on GeoTools version ● Early stages of incubation ● TODO: Logo :)
  • 72.
    Jody Garnett SeniorSoftware Engineer Boundless Projects: GeoTools, GeoServer,uDig Frank Gasdorf Software Developer & GIS Professional Plath GmbH Projects uDig Eclipse Foundation LocationTech uDig
  • 73.
    ● User-friendly DesktopInternet GIS ● Based on Eclipse Framework ● Reusable RCP components ● Java core libraries uDig (JTS, GeoTools, jgrasstools,imageio-ext) ● Supports: ● Industry standards formats and services formats (WMS, WFS, KML, GeoTiff, etc) ● License: Eclipse Public License EPL and BSD
  • 74.
    uDig SDK Providesthe best of Open Source Mapping for the Eclipse RCP Developer
  • 75.
  • 76.
  • 77.
    DEWS Distance EarlyWarning System https://www.youtube.com/watch?v=-lGgkOd-Tl4
  • 78.
  • 79.
  • 80.
    Full Service Foundation IP mgmt Dev Process License Model Forge & Build Community Member Network Governance
  • 81.
  • 82.
    Events: Tour 2014 18 Cities around the world. Speaking & sponsorship opportunities. Great spirit of camraderie & learning
  • 83.
  • 84.
    Questions? (Hand upfor a microphone, project leads to the front)
  • 85.
    Q&A ● Q:Do I have to use Eclipse infrastructure?A: See https://github.com/locationtech(Thanks to the Verte.x for sorting out how)

Editor's Notes

  • #2 Timeframe: 1 hour as this is an invited tech talk 10 mins - Introduction - 2-5 mins to welcome everyone and introduce presenters/organisations - 3-5 mins to introduce LocationTech: quick take as a working group exploring spatial technologies put together by the Eclipse Foundation 20 mins - Libraries - JTS (Martin) - made a new logo with martin ← thanks! - Mobile Map Tools (Andrew) - 3 mins? - GeoMesa (?) - ? - Spatial4J (David Smiley) - ? 20 mins - Processing - GeoTrellis (Rob) - 10 min - (coudld not get a good logo) 20 mins - Applications 10 mins - Wrap up - 5 mins reminder of LocationTech mandate, and where we are at i) incubating initial projects ii) search for projects to fill in key areas (such as a geocoder) iii) could you be a key project? - Q&A - End with Invite to BOF Abstract LocationTech is an Eclipse Foundation industry working group for location aware technologies. This presentation introduces LocationTech, looks at what it means for our industry and the participating projects. Libraries: JTS Topology Suite is the rocket science of GIS providing an implementation of Geometry. Mobile Map Tools provides a C++ foundation that is translated into Java and Javascript for maps on iOS, Andriod and WebGL. GeoMesa is a distributed key/value store based on Accumulo. Spatial4j integrates with JTS to provide Geometry on curved surface. Process: GeoTrellis real-time distributed processing used scala, akka and spark. GeoJinni mixes spatial data/indexing with Hadoop. Applications: GEOFF offers OpenLayers 3 as a SWT component. GeoGit distributed revision control for feature data. GeoScipt brings spatial data to Groovy, JavaScript, Python and Scala. uDig offers an eclipse based desktop GIS solution. Attend this presentation if want to know what LocationTech is about, are interested in these projects or curious about what projects will be next.
  • #4 Got contact details, add them here. - Name links to linked in - since this is a north american conference :) - Thank your employer by using their logo Who is going to be there: David Smiley Jody Garnett (uDig) Rob Emanuele (GeoTrellis) Justin Deoliveira (GeoScript) Anthony Fox (GeoMesa) Martin Davis (JTS) Frank Gasdorf (uDig) Howard Butler Robert Cheetham
  • #5 Assume this is from the charter: http://www.locationtech.org/charter
  • #6 11 members joined LocationTech in its first 10 months, additional members joining in 2014 TODO: Want to gather all logos here and have them link as appropriate for those following at home
  • #7 Really excited that LocationTech is able to support the spatial libraries that make Open Source GIS possible. These projects are amazing, and they are EVERY WHERE.
  • #9 Notes: - Eclipse Distribution License is just the BSD license with “Eclipse” filled in for the organisation :) - Eclipse Public License is the default choice for Eclipse Projects with a focus on being commercial friendly. (Jody: I consider this the “universal donor” of open source - code provided with BSD can be used everywhere with little trouble)
  • #36 (may become an abstract class in the next version)
  • #39 Note: “x y” order in argument for points; same for WKT coordinates Note: distances are “degrees” based
  • #42 Um can we just stick this next to your name
  • #44 http://demo.geotrellis.com/chatta/
  • #52 Um can we just stick this next to your name
  • #57 From: http://erdalkaracade.blogspot.com
  • #58 From: http://erdalkaracade.blogspot.com
  • #76 This is an example application, it shows SDK
  • #77 hydrological and geomorphological analyses (GRASS & uDig UI) reasearch data can be used easily using GRASS provides scripting engine to run analysis
  • #78 project TRIDEC sponsored by European Commision Tsunami prediction
  • #79 Electricity monitoring and analysis tool. Its a platform for thisi domain in itself and uses uDig for viz and data connectivity
  • #81 There is a staff of 20 providing services to support the community. They provide a variety of services including IT support, release engineering, marketing, legal support, IP management, and more.
  • #83 Helping organisations take open source from developer driven (use, contribute, champion) to business driven (collaboration,redefine). From Bailetti & Carbone 2009
  • #84 Reference: https://2015.foss4g-na.org/about-foss4g-na2015
  • #86 List of Project Contacts in attendance, will help make the questions personal. Warning: If questions are slow in coming I will just as hard technical questions about integration.