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. 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
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. 6 cities
By the numbers
★ 723 registrations
★ 640+ attendees
★ 56 speakers
★ Videos on YouTube
★ Positive feedback
13
Tour 2013
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
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. 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.
20. 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);
21. 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)");
26. 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!
27. GeoMesa
• Key/value
store
• Supports:
• Distributed
&
highly
scalable
• Based
on
Accumulo
• License
• Apache
License,
Version
2.0
27
Approved!
28. 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
29. 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
30. 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)
36. 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!
37. GeoGit
• Distributed
data
store
• Supports:
• Distributed,
off-‐line
opera%on
• Versioning,
compare
&
merge
• Push/pull
data
• License:
BSD
License
37
Incoming Project!
Incoming!
39. 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!
40. 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
41. 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
42. 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
43. 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
44. 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!
49. 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
50. EGit Project CDT Project
WTP Project Linux Tools Project
(Percentage of contributions for each project)
50
Industry Collaboration