SlideShare una empresa de Scribd logo
1 de 83
MOBILE LOCATION-BASED APPS
Lecture in University of Tartu
Jaak Laineste, 30.09.2013
LOCATION-BASED SERVICE OVERVIEW
Part 1
Jaak Laineste
• GIS/LBS experience
17 years in GIS/mapping, 13 years in LBS
Mobile operator LBS in all over the world
Nutiteq since 2006
• Nutiteq and mobile development
Part of Mobi Solutions group since 2009
Android and iPhone teams
J2ME and Blackberry past
Naval navigation apps
Location-Based Services
1. Location-based: 80% of data
2. Service (or mobile application)
3. Mobile technologies (phones, networks)
4. Mobile positioning
• LBS is a technology, not application type,
or business
Can be aspect of any application type
Mobile Network Operator-based LBS
• Mobile Positioning
Find location using mobile network
Works with any mobile, no requirements
Accuracy with Cell-ID: 300m ... 30 km (~1 km avg)
Operator can also use in-phone GPS with A-GPS
Only operator can do it,
Can give to trusted 3rd party
• Typical services
FriendFinder, Games
Find Nearest SMS
Fleet Management
NSA
• Recent trends
Operators open APIs, including location
Aggregators: e.g. Loc-Aid
Location-based advertising – www.flipper.ee (EMT, Estonia)
Popular LBS apps in smartphones
• Navigation
TomTom, Garmin, Here maps etc. Also Waze, Google
• Offline maps
Skobbler, MapsWithMe
• Business around you
Reviews, events, classifieds etc
Yelp, Eventful, OpenTable etc
• Transit and traffic info
US, West Europe
• Speed camera warnings
Trapster, Mobi
• Games: Foursquare
• Sports trackers: RunKeeper, Endomondo
• Taxi ordering
Uhail
Less successful applications
• Friend tracking
• Social: Facebook checkins
• Track & Publish my location
See OpenPaths, Glympse
• Location-based advertising
• Location-based alerts
• Augmented reality (with maps)
Hard problems
• GPS takes battery
• GPS coverage and accuracy is bad
No indoors
No Augmented Reality
• Maps are limited
No indoors
No walking level
• Real user needs are hard to estimate
Successful apps
• Local is local
• Content is the king
But expensive
• Understand topic
pymwymi
• There is no killer app
but you can create killer service
• Location is just a technology
Not the core differentiator, or business
GIS INTRODUCTION
Part 2
GIS definition
• Geographic
With geographical dimension
• Information
• System
Software, servers, computers
• Wikipedia:
a system designed to capture, store, manipulate,
analyze, manage, and present all types of
geographically referenced data.
In the simplest terms, GIS is the merging of
cartography, statistical analysis, and database
technology
Traditional GIS
• Started in early 1970’ies
• Key companies, drivers
ESRI, Intergraph, MapInfo (Pitney Bowes), AutoDesk, Oracle
Universities: UMN etc
• Key focus
Desktop-GIS – special GIS tools
Servers, client-server model
• Expensive, specialized, heavy
• Recent developments (from late 90ies)
OGC standards: WMS, WFS, GML etc
Cloud-based, mobile
Neo-geography
• Web/Internet-based
Easy to use Cloud services
• Cool startups
GeoIQ, CartoDB, Boundless (OpenGeo), MapBox, GISCloud
• Free commercial tools
Google: Maps, Earth, SketchUp, FusionTables etc
Yahoo, Microsoft Bing, MapQuest
• Open source software
OSGeo.org: server, desktop, web
• Open sourced data
OpenStreetMap, open data
Internet trends
• HTML5 stack
Javascript, Node.js
CartoCSS
GeoJSON, TopoJSON
Python
Go
• Github
GeoGIT
Mobile LBS future trends
• Augmented Reality
Issue: mobile sensors and UI (glasses)
Needs powerful image processing
• 3D
3D earth (2.5D)
Buildings, textures etc – see Apple iOs Maps or Nutiteq
• 360-degree view
Issue: bandwidth
• Walking/local/indoor maps
Issue: content update is expensive
No standard indoor positioning
• Your ideas !
GIS TECHNOLOGY AND DEVELOPMENT
Why special approach
• Data is quite complex
Two-dimensional (or 3D, 4D)
Complex relations
Nice visualization is processing-hungry
• Base maps
Big datasets, different features
• Specific map data
Dynamic, can be big etc
A lot of data in a single screen
Type – 4 bytes
Name – 100 bytes
People – 4 bytes
Checkins – 4 bytes
Point on map – 16 bytes
Base map – 32+ KB
27 relations
205 ways (lines)
1920 points (x 16 b)
Geo basics
• Data models
vector
raster
other
• Coordinates
Projections, coordinate systems
Data models
• Raster
PNG for maps, lossless
JPG for aerials
GeoTIFF, coverages
Key parameters: bitmap resolution, size, channels
• Vector
Base objects: points, lines, polygons
Collections: multi-polygon, multi-line, multi-point
Attributes (fields): text/boolean/numeric/binary etc
Texts on map - labels from attributes
Layer – same as „table“ in DB
Special cases: topological models, graphs
GIS Layers
Other data models
• Elevation models
DEM – Digital Elevation Model
TIN - triangulated irregular network
• 3D worlds
Collada, X3D
Google Earth Warehouse
• Point clouds
Lidar – laser measurements
Hillshade from DEM
TIN
Point cloud
3D model
GIS layers in practise
• One base layer
Background map: Google, OpenStreetMap etc
Raster-based
• Overlay layer(s)
Points of Interest, markers
GPS location – dynamic info
Lines, Polygons
Clustered points
Demo
• Quantum GIS with vector in action
• Open vector data layers
• Styling map
QGIS with OSM data
Typical vector data operations
• Display map
Request data for bounding box (BBOX) or tiles
Reprojection (if needed)
Show set of layers
Style data – colors, symbols etc
Different map zooms have different data
• Geocoding – address to coordinates
• Reverse-geocoding
• Find nearest neighbour(s)
• Find objects in radius (buffer)
• Calculate distance between objects
• Find Point in area (polygon)
• Routing – find optimal path in graph
• Clustering - show big datasets on map
Common GIS file formats
• Shapefile (ESRI) – most common
4-5 files per layer: .shp, .dbf etc
One geometry type per layer allowed
No style information, pure geometry
Optional: projection file .prj, spatial index, charset
• KML (Google, open standard)
Vector data, includes styles
Special data types: 3D data (Collada), linked data, visual coverages
Can have only WGS84 coordinates
Can be KMZ – zipped file
• Other formats
SpatiaLite: vector and raster data. Any projection, no styles.
GeoJSON and TopoJSON – web/Javascript-friendly
Text files (CSV) with coordinates or addresses
Every commercial GIS has own format(s)
Free converter: http://www.gdal.org/ogr/ogr_formats.html
Spatial SQL database basics
• Special column data types(s):
Geometry, Point, Polygon ...
• Geographical indexing
Usually R-Tree, based on object bounds
• Geographical functions:
Manipulations, relations, queries etc
• Metadata table:
Defines coordinate system, data type for every
Geometry column
Geometry primitives in WKT (2D)
Multipart geometries in WKT (2D)
PostGIS sample: spatial query
PostGIS example: spatial query
PROJECTIONS
Coordinate systems
• Geographical – spherical
Units: Latitude and Longitude
Based on an ellipsoid, e.g. WGS-84
Datums, also WGS84 for GPS
DMS for display, decimal degrees for programming
• Projected - cartesian
Units: usually meters (can be km, miles)
Hundreds of named projections, mostly for local
regions
Reduce distortions: keep angles, distances, areas
equal
Geographical coordinate space
Cartesian (projected) coordinate space
Different projections
• The Globe Applet
http://www.jhlabs.com/java/maps/proj/
• Check out some
Oblique Mercator, Cassini, Rectangular
Polyconic
• Common in real life
Plate Carre, Mercator, Spherical Mercator,
UTM, Lambert Conformal Conic (in L-EST)
Short and long projection description
EPSG codes: 4-5 digit numbers
• EPSG:4326 – WGS84
• EPSG:3301 – Estonian system
• EPSG:3587 – „Google web
Mercator“
Was also EPSG:900913
<EPSG:3301>
PROJCS["Estonian Coordinate System of 1997",
GEOGCS["EST97",
DATUM["Estonia_1997",
SPHEROID["GRS 1980",6378137,298.257222101,
AUTHORITY["EPSG","7019"]],
TOWGS84[0,0,0,0,0,0,0],
AUTHORITY["EPSG","6180"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.01745329251994328,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4180"]],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
PROJECTION["Lambert_Conformal_Conic_2SP"],
PARAMETER["standard_parallel_1",59.33333333333334],
PARAMETER["standard_parallel_2",58],
PARAMETER["latitude_of_origin",57.51755393055556],
PARAMETER["central_meridian",24],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",6375000],
AUTHORITY["EPSG","3301"],
AXIS["Y",EAST],
AXIS["X",NORTH]]
Coordinates as QR-Code
• http://zxing.appspot.com/generator/
„GEO:26.7144,58.3784“
MAP DATA SOURCES
Web maps
• Google Maps
Javascript, Static APIs, Earth 3D
Geocoding and Directions (routing) services
Mobile API: Android
• Bing Maps
Web, Mobile API (WP7, iPhone)
• Here (ex Nokia Ovi / Navteq) Maps
Web, Mobile (Qt, J2ME)
• Apple Maps – iOs only
Web map restrictions
• Technical restrictions
Limited styling options
Limited to provided API-s, feature limits
Can’t get map data, or even images
Some mobile platforms not served at all
• Commercial limits
Some services (e.g. Navigation) require special
license
Advertising is added
Commercial map data
• Global vendors
Vector: Here (Navteq/Nokia), TeleAtlas (TomTom),
AND
Aerial/Satellite: DigitalGlobe, Blom ASA ...
• Local vendors
Regio, Maa-amet
In almost every country, quite detailed
• Specifics
Technically quite flexible
Usually quite expensive
OpenStreetMap (OSM)
• Free and open data
Vector data in 2D
Streets, roads, buildings, amenities etc
• A lot of services
Map images (tiles), geocoders, routers etc
Special views: opencyclemap, openpistemap etc
• Everyone can improve the map
www.openstreetmap.org
www.maakaart.ee – in Estonian
ID – web-based OSM editor
JOSM – OSM main editor
OSM advantages
• Free and open to use
No advertising, restrictions
• Vector data access
Custom styles for mapping
Own filters of data on map (layers)
Interactive data overlays (POI layers)
Advanced services: routing, search, analysis, ...
• Fast and easy updates
Find error – go fix it yourself!
Note: follow community guidelines
GIS TOOLS
Main OGC standards
• WMS – Web Mapping Service
Send coordinates in URL, get map image
• WFS – Web Feature Service
Send coordinates in URL, get vector data as GML
WFS-T – enables writing to server
• GML – Geography Markup Language
XML-based
Specific schemas depending on application
• TMS – Tiled Map Service
Get 256x256-pixel map images for x, y, zoom
• Others
GeoRSS – RSS with geotags
Geo EXIF – GPS tags for digital photos
OCG
Free GIS tools
• Desktop tools – mapping, analysis, processing
Quantum GIS (QGIS)
uDig, OpenJUMP, gvSIG
GRASS, R – analysis
Google Earth - view/create KML
Trimble SketchUp – create 3D models
• Databases
Data sharing/storage
Analytical queries, eg. count points in regions
PostGIS – Postgres add-on.
Pgrouting
Spatialite – SQLite extension
• Processing
GDAL/OGR – raster and vector library, command-line converters
Free GIS tools for developers
• JTS
Java Topology Suite, ports in C (GEOS) etc
Lot of complex algorithms, geometries, graphs,
geographical indexes
• Proj.4
C-based, has few ports
Hundreds of predefined projections
• SpatiaLite
SQLite extension, for files
Also some raster features
• PostGIS
Postgres SQL server extension for vector
Raster features in next version
Free GIS Servers
• Web Mapping
GeoServer: WMS, WFS, WCS, caching
MapServer: WMS, TMS, WFS
Mapnik: TMS,
TileMill: good for on-line styling, MBTiles packages
• Web Processing Services
Degree etc
• Developer toolkits
Leflet - javascript
OpenLayers 3 – Javascript
GeoMajas – Java-based
MapFish – Python-based
• Cooperation project: www.osgeo.org
Free GeoWebServices
• CartoDB.com
Hosted PostGIS servers
• GISCloud.com
Also server-based editing is possible
Not very mature
• OpenStreetMap
Only for community-created data
Content requirements: verifyable objects etc
• Github
GeoJSON and TopoJSON support
geojson.io editor service
• Google Fusion Tables
General data table API service
Includes basic geo-features
Build your own geodatabase
• When you need own server:
Special requirements
Cannot customize readymade servers
Specific use cases: user permissions etc
• Using OSGeo tools
Database: PostGIS
Web maps: eg MapServer
Client tools: Geomajas, Leaflet
Bundle: OpenGeo Suite by Boundless, MS4W
• Using OSM toolkit
Web maps: PostGIS + Mapnik
API/data management: Rails_port (ruby), Postgres
Client-side modification: JOSM, ID etc
WEB MAPPING DEVELOPENT IN SHORT
General model
• Server-side
Google, Bing, OpenStreetMap etc etc
Map content is „already there for free“
Tile-, WMS or vector based API
• Client-side
JavaScript, Flash, Silverlight, plug-in or HTML
API
Bundled with server: Google, Bing etc
OpenSource: Leaflet, OpenLayers 3
Tiled map server – Bing sample
Web mapping client API - Leaflet
// create a map in the "map" div, set the view to a given place and zoom
var map = L.map('map').setView([51.505, -0.09], 13);
// add an OpenStreetMap tile layer
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
// add a marker in the given location, attach some popup content to it and open the popup
L.marker([51.5, -0.09]).addTo(map)
.bindPopup('A pretty CSS3 popup. <br> Easily customizable.')
.openPopup();
See more from http://leafletjs.com/index.html
Web mapping server APIs
• WMS – view-based
http://kaart.maaamet.ee/wm
s/alus-geo
?SERVICE=WMS
&VERSION=1.1.1
&REQUEST=GetMap
&LAYERS=HALDUSPIIRID,BAAS
KAART
&STYLES=default
&SRS=EPSG:4326
&BBOX=26.7,58.3,26.8,58.4
&WIDTH=600
&HEIGHT=600
&FORMAT=image/png&
• TMS – tile-based
http://tile.openstreetmap.org
/13/4702/2451.png
/13/4703/2451.png
/13/4704/2451.png
/13/4702/2452.png
/13/4703/2452.png
/13/4704/2452.png
...
WMS image response
26.7E,58.3N
26.8E,58.4N
600px
600px
OSM Tile-based map: zoom 13
4703 4704
2450
2451
4705
Y
X
Tiles or WMS ?
• Tile advantages
Can be cached in client
Can be pre-rendered in server
Can be preloaded to client
Faster, suitable for high-traffic services
• WMS advantages
Supports selection of projection, layers, styles
Smaller number of requests
Suitable for high flexibility services (GIS apps)
MOBILE LBS APP DESIGN TIPS
Bad UX design
• Long alphabetical listings, no search
Bad example: RMK Android app
• Ignore geographical dimension
Mobile apps are used „out in a wild“
• Too many points on map
Use clusters – group points
Use filters – show minimal number
• Assume user GPS location
User is maybe planning to go there
• Require network connectivity
• Unoptimized user experience
LBS must be more robust than average mobile app (eg game)
It is probably not used just to kill some tome
Common technical mistakes
• Geographical data handled as non-geographical
Using place names / addresses to find nearest
Use just two float fields for geographical objects
Cannot be indexed, can’t use existing geotools
• Ignore GPS specifics
Location fix takes long time: 20 sec to 20 min
Fix is not always available: indoors etc
Check accuracy and availability
GPS kills the battery!
• Coordinate system errors
mix degrees/meters, projections
swap x/y
ANDROID APPS WITH LOCATION
Location determination
• Plain GPS
Free satellite signal – requires 4 satellites min.
Accuracy: ~5 meters
Time to first fix (TFF) – up to 20 minutes
• AGPS
Assisted by network – TFF ~20-30 sec
Claimed to have also better sensibility
• Network-based locations
Immediate but less accurate
Mobile network cell (Cell-ID) – ~1 km error average, can be 10 km
Wifi location: ~100 m accuracy
Cell/Wifi databases: user-collected. Google, Skyhook, Apple,
Nokia, OpenCellID etc
• Hybrid method
First give quick inaccurate network location, then try GPS
Used in Android, iPhone
Location API in Android
• Location Provider
Selected automatically based on set requirements: Cell-id,WiFI or GPS
• Features
Listen for updates – most common
Last known location (cached) – not suggested
Proximity alerts – not guaranteed
• Best strategy depends on app
http://developer.android.com/guide/topics/location/obtaining-user-
location.html
Mobile mapping – main platforms
• Smartphone platforms
Most have GPS and good screen
• iPhone
Bundled Apple MapKit, Apple Maps.
Opensource: Route-me, WhirlyGlobe
• Android
Bundled Google MapView, Google Maps
Opensource tools: Osmand, Nutiteq, Mapsforge etc
• Windows Phone 7/8
Bing maps SDK, Nokia/Here Maps SDK
Mobile mapping – other platforms
• GPS : not guaranteed
• BlackBerry Java
BB Maps, Nutiteq SDK
• Nokia Asha (S40)
Nokia Maps SDK, Nutiteq
• Samsung Bada
deCarta SDK
Mapping SDKs on Android
• Raster-based
Google Maps API – no offline, routing, license limits
Nutiteq 3D Maps SDK – offline, 3D features
OSMDroid – LGPL, Android-specific
• Vector-based
Mapsforge – GPL, only offline , nice rendering
Droyd SDK – also navigation, only offline
• 3D Earth solutions
Glob3 Mobile – in development, BSD license
• HTML5
OpenWebGlobe – WebGL based 3D earth
Typical geotasks in Android
• Display map
MapView API – interactive map: Google Maps, 2D, online
Add clickable points to map (annotations)
Add overlays (rasters)
Show user GPS location
• Geocoding
android.location.Geocoder API, online
• Reverse-geocoding
android.location.Geocoder getFromLocation()
• Find nearest neighbour(s)
• Find objects in radius (buffer)
Depends on data source
• Calculate distance between objects
Location.distanceTo() method
• Find Point in area (and other georelations)
Spatial-enabled GIS engine: PostGIS in server or Spatialite in phone
• Routing – find optimal path in graph
Google online API, other on-line routing engines
Spatialite routing, in small area
• Point Clustering
https://github.com/weakwire/AndroidMapCluster
Other useful free tools for mobile
• Spatialite = SQLite + GEO
Big datasets (8M objects DB)
Spatial operators, e.g. distance, nearest ...
Requires NDK/JNI. Prebuilt binary in
nutiteq.github.io
• JTS – Java Topology Suite
Java-level spatial graphs, operators, geometries
• Free GIS tools – processing/preview data
See above
Nutiteq 3D Android Maps SDK
• Mapping
Number of pre-defined map sources, OpenStreetMap default
Custom map sources, you can define own tile API
On-line and off-line mapping (prepackaged, stored, cached)
• 3D support
2.5D views
3D models: KMZ/OpenCollada
• Other features
Points of Interest (POI) on map (layers, individual places)
Polygons and lines on map
Raster map overlays
Vector layers
Do it yourself speed camera warning
• Speed camera alerts on Android
Shows map, gets GPS location, reads data, plays alerts
• Tools
Nutiteq Mapping SDK – nutiteq.github.com/hellomap3d
• Content
POIPlaza.com data file
OSM maps (online or offline)
Alarm audio mp3 file
• Bonus points
Add a 3D driving car from Monster Milktruck as your
location
Speeding alerts from current speed
Thank you!
Jaak Laineste
CEO, Nutiteq
www.nutiteq.com
jaak@nutiteq.com

Más contenido relacionado

La actualidad más candente (6)

Optimizing your Map Services
Optimizing your Map ServicesOptimizing your Map Services
Optimizing your Map Services
 
Web gis implementation notes
Web gis implementation notesWeb gis implementation notes
Web gis implementation notes
 
An Introduction to MapBox
An Introduction to MapBoxAn Introduction to MapBox
An Introduction to MapBox
 
AddressingHistory - Crowdsourcing the Past - Stuart Macdonald
AddressingHistory - Crowdsourcing the Past - Stuart MacdonaldAddressingHistory - Crowdsourcing the Past - Stuart Macdonald
AddressingHistory - Crowdsourcing the Past - Stuart Macdonald
 
FOSS4G2011 Report
FOSS4G2011 ReportFOSS4G2011 Report
FOSS4G2011 Report
 
Build Custom Maps with Appcelerator Titanium, Mapbox and OpenStreetMap - tiCo...
Build Custom Maps with Appcelerator Titanium, Mapbox and OpenStreetMap - tiCo...Build Custom Maps with Appcelerator Titanium, Mapbox and OpenStreetMap - tiCo...
Build Custom Maps with Appcelerator Titanium, Mapbox and OpenStreetMap - tiCo...
 

Destacado

Low Friction Personal Data Collection - Open Source Bridge
Low Friction Personal Data Collection - Open Source BridgeLow Friction Personal Data Collection - Open Source Bridge
Low Friction Personal Data Collection - Open Source Bridge
Aaron Parecki
 
Charles Birnbaum (Foursquare) «Big data and user generated content LBS»
Charles Birnbaum (Foursquare) «Big data and user generated content LBS»Charles Birnbaum (Foursquare) «Big data and user generated content LBS»
Charles Birnbaum (Foursquare) «Big data and user generated content LBS»
e-Legion
 

Destacado (20)

Why your users want Google Maps, not your GIS ... And what to do about it!
Why your users want Google Maps, not your GIS ... And what to do about it!Why your users want Google Maps, not your GIS ... And what to do about it!
Why your users want Google Maps, not your GIS ... And what to do about it!
 
Low Friction Personal Data Collection - Open Source Bridge
Low Friction Personal Data Collection - Open Source BridgeLow Friction Personal Data Collection - Open Source Bridge
Low Friction Personal Data Collection - Open Source Bridge
 
Big Data: Small Screen Location-Based Services 2.0
Big Data: Small Screen Location-Based Services 2.0 Big Data: Small Screen Location-Based Services 2.0
Big Data: Small Screen Location-Based Services 2.0
 
Start thinking from volume towards end users (by Paul Poelmans)
Start thinking from volume towards end users (by Paul Poelmans)Start thinking from volume towards end users (by Paul Poelmans)
Start thinking from volume towards end users (by Paul Poelmans)
 
Location Based Services Verhaert
Location Based Services VerhaertLocation Based Services Verhaert
Location Based Services Verhaert
 
Leveraging Geo-Spatial (Big) Data for Financial Services Solutions
Leveraging Geo-Spatial (Big) Data for Financial Services SolutionsLeveraging Geo-Spatial (Big) Data for Financial Services Solutions
Leveraging Geo-Spatial (Big) Data for Financial Services Solutions
 
Design for behavioral change (by David Pas)
Design for behavioral change (by David Pas)Design for behavioral change (by David Pas)
Design for behavioral change (by David Pas)
 
Get the right customer insights & validation (by Michiel Cambron)
Get the right customer insights & validation (by Michiel Cambron)Get the right customer insights & validation (by Michiel Cambron)
Get the right customer insights & validation (by Michiel Cambron)
 
NFC, LBS and Smart Screens in Transport
NFC, LBS and Smart Screens in Transport NFC, LBS and Smart Screens in Transport
NFC, LBS and Smart Screens in Transport
 
Charles Birnbaum (Foursquare) «Big data and user generated content LBS»
Charles Birnbaum (Foursquare) «Big data and user generated content LBS»Charles Birnbaum (Foursquare) «Big data and user generated content LBS»
Charles Birnbaum (Foursquare) «Big data and user generated content LBS»
 
Linked (Geo) Data - Adding a Spatial Dimension to the Web of Data
Linked (Geo) Data - Adding a Spatial Dimension to the Web of DataLinked (Geo) Data - Adding a Spatial Dimension to the Web of Data
Linked (Geo) Data - Adding a Spatial Dimension to the Web of Data
 
Geo Analytics Tutorial - Where 2.0 2011
Geo Analytics Tutorial - Where 2.0 2011Geo Analytics Tutorial - Where 2.0 2011
Geo Analytics Tutorial - Where 2.0 2011
 
Big Data in Retail
Big Data in RetailBig Data in Retail
Big Data in Retail
 
SXSW Keynote - The Game Layer On Top Of The World
SXSW Keynote - The Game Layer On Top Of The WorldSXSW Keynote - The Game Layer On Top Of The World
SXSW Keynote - The Game Layer On Top Of The World
 
Big Data Monetization - The Path From Internal to External
Big Data Monetization - The Path From Internal to ExternalBig Data Monetization - The Path From Internal to External
Big Data Monetization - The Path From Internal to External
 
Big data processing with apache spark
Big data processing with apache sparkBig data processing with apache spark
Big data processing with apache spark
 
The Future of Social Networks on the Internet: The Need for Semantics
The Future of Social Networks on the Internet: The Need for SemanticsThe Future of Social Networks on the Internet: The Need for Semantics
The Future of Social Networks on the Internet: The Need for Semantics
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Similar a Mobile LBS

Maps4 finland 28.8.2012, pekka sarkola
Maps4 finland 28.8.2012, pekka sarkolaMaps4 finland 28.8.2012, pekka sarkola
Maps4 finland 28.8.2012, pekka sarkola
Olli Rinne
 
NAPSG 2010 Fire/EMS Conference - Data Sharing Basics
NAPSG 2010 Fire/EMS Conference - Data Sharing BasicsNAPSG 2010 Fire/EMS Conference - Data Sharing Basics
NAPSG 2010 Fire/EMS Conference - Data Sharing Basics
pdituri
 
GIS Introduction.ppt
GIS Introduction.pptGIS Introduction.ppt
GIS Introduction.ppt
misterjis
 

Similar a Mobile LBS (20)

Intro To Geospatial
Intro To GeospatialIntro To Geospatial
Intro To Geospatial
 
GEOGRAPHICAL INFORMATION SYSTEM (GIS)
GEOGRAPHICAL INFORMATION SYSTEM (GIS)GEOGRAPHICAL INFORMATION SYSTEM (GIS)
GEOGRAPHICAL INFORMATION SYSTEM (GIS)
 
Geographic information system
Geographic information systemGeographic information system
Geographic information system
 
Q GIS Training Presentation
Q GIS Training PresentationQ GIS Training Presentation
Q GIS Training Presentation
 
What is Geography Information Systems (GIS)
What is Geography Information Systems (GIS)What is Geography Information Systems (GIS)
What is Geography Information Systems (GIS)
 
Be Location Intelligent with MapInfo Pro v2019
Be Location Intelligent with MapInfo Pro v2019Be Location Intelligent with MapInfo Pro v2019
Be Location Intelligent with MapInfo Pro v2019
 
Introduction to Geographic Information Systems (GIS).pptx
Introduction to Geographic Information Systems (GIS).pptxIntroduction to Geographic Information Systems (GIS).pptx
Introduction to Geographic Information Systems (GIS).pptx
 
Intro GIS.pptx
Intro GIS.pptxIntro GIS.pptx
Intro GIS.pptx
 
Geoservices Activities at EDINA
Geoservices Activities at EDINAGeoservices Activities at EDINA
Geoservices Activities at EDINA
 
Build with live location data
Build with live location dataBuild with live location data
Build with live location data
 
Maps4 finland 28.8.2012, pekka sarkola
Maps4 finland 28.8.2012, pekka sarkolaMaps4 finland 28.8.2012, pekka sarkola
Maps4 finland 28.8.2012, pekka sarkola
 
Maps4Finland 28.8.2012, Pekka Sarkola
Maps4Finland 28.8.2012, Pekka SarkolaMaps4Finland 28.8.2012, Pekka Sarkola
Maps4Finland 28.8.2012, Pekka Sarkola
 
The Use of GIS in Local Government - The City of Monash
The Use of GIS in Local Government - The City of MonashThe Use of GIS in Local Government - The City of Monash
The Use of GIS in Local Government - The City of Monash
 
NAPSG 2010 Fire/EMS Conference - Data Sharing Basics
NAPSG 2010 Fire/EMS Conference - Data Sharing BasicsNAPSG 2010 Fire/EMS Conference - Data Sharing Basics
NAPSG 2010 Fire/EMS Conference - Data Sharing Basics
 
Building a Spatial Database in PostgreSQL
Building a Spatial Database in PostgreSQLBuilding a Spatial Database in PostgreSQL
Building a Spatial Database in PostgreSQL
 
GIS Introduction.ppt
GIS Introduction.pptGIS Introduction.ppt
GIS Introduction.ppt
 
Geocart workshop
Geocart workshopGeocart workshop
Geocart workshop
 
Turning Geography into Geographic Understanding - Texas GIS Forum 2013
Turning Geography into Geographic Understanding - Texas GIS Forum 2013Turning Geography into Geographic Understanding - Texas GIS Forum 2013
Turning Geography into Geographic Understanding - Texas GIS Forum 2013
 
MODS_Training_January_2015.pptx
MODS_Training_January_2015.pptxMODS_Training_January_2015.pptx
MODS_Training_January_2015.pptx
 
Agile2014 fhc25 using open street maps data and tools for indoor mapping in a...
Agile2014 fhc25 using open street maps data and tools for indoor mapping in a...Agile2014 fhc25 using open street maps data and tools for indoor mapping in a...
Agile2014 fhc25 using open street maps data and tools for indoor mapping in a...
 

Más de Jaak Laineste

Open streetmap koolitus_yldine_eka
Open streetmap koolitus_yldine_ekaOpen streetmap koolitus_yldine_eka
Open streetmap koolitus_yldine_eka
Jaak Laineste
 
Augmented reality game with OpenStreetMap
Augmented reality game with OpenStreetMapAugmented reality game with OpenStreetMap
Augmented reality game with OpenStreetMap
Jaak Laineste
 

Más de Jaak Laineste (12)

EstGIS 2018 blockchain + GIS
EstGIS 2018 blockchain + GISEstGIS 2018 blockchain + GIS
EstGIS 2018 blockchain + GIS
 
OpenStreetMap and Open data in Estonia
OpenStreetMap and Open data in EstoniaOpenStreetMap and Open data in Estonia
OpenStreetMap and Open data in Estonia
 
GIS Mobiilis - ESTGIS suveülikool 2014
GIS Mobiilis - ESTGIS suveülikool 2014GIS Mobiilis - ESTGIS suveülikool 2014
GIS Mobiilis - ESTGIS suveülikool 2014
 
OpenStreetMap koolitus ESTGIS-ile
OpenStreetMap koolitus ESTGIS-ileOpenStreetMap koolitus ESTGIS-ile
OpenStreetMap koolitus ESTGIS-ile
 
Open streetmap koolitus_yldine_eka
Open streetmap koolitus_yldine_ekaOpen streetmap koolitus_yldine_eka
Open streetmap koolitus_yldine_eka
 
OpenStreetMap koolitus 2h
OpenStreetMap koolitus 2hOpenStreetMap koolitus 2h
OpenStreetMap koolitus 2h
 
Openstreetmap, GPS traces and positioning
Openstreetmap, GPS traces and positioningOpenstreetmap, GPS traces and positioning
Openstreetmap, GPS traces and positioning
 
Augmented reality game with OpenStreetMap
Augmented reality game with OpenStreetMapAugmented reality game with OpenStreetMap
Augmented reality game with OpenStreetMap
 
Public sources in estonia sotm2010
Public sources in estonia sotm2010Public sources in estonia sotm2010
Public sources in estonia sotm2010
 
Laineste OpenStreetMap.ee
Laineste OpenStreetMap.eeLaineste OpenStreetMap.ee
Laineste OpenStreetMap.ee
 
Nutiteq Mobile Monday
Nutiteq Mobile MondayNutiteq Mobile Monday
Nutiteq Mobile Monday
 
Terminal-based Mobile Positioning overview
Terminal-based Mobile Positioning overviewTerminal-based Mobile Positioning overview
Terminal-based Mobile Positioning overview
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Mobile LBS

  • 1. MOBILE LOCATION-BASED APPS Lecture in University of Tartu Jaak Laineste, 30.09.2013
  • 3. Jaak Laineste • GIS/LBS experience 17 years in GIS/mapping, 13 years in LBS Mobile operator LBS in all over the world Nutiteq since 2006 • Nutiteq and mobile development Part of Mobi Solutions group since 2009 Android and iPhone teams J2ME and Blackberry past Naval navigation apps
  • 4. Location-Based Services 1. Location-based: 80% of data 2. Service (or mobile application) 3. Mobile technologies (phones, networks) 4. Mobile positioning • LBS is a technology, not application type, or business Can be aspect of any application type
  • 5. Mobile Network Operator-based LBS • Mobile Positioning Find location using mobile network Works with any mobile, no requirements Accuracy with Cell-ID: 300m ... 30 km (~1 km avg) Operator can also use in-phone GPS with A-GPS Only operator can do it, Can give to trusted 3rd party • Typical services FriendFinder, Games Find Nearest SMS Fleet Management NSA • Recent trends Operators open APIs, including location Aggregators: e.g. Loc-Aid Location-based advertising – www.flipper.ee (EMT, Estonia)
  • 6. Popular LBS apps in smartphones • Navigation TomTom, Garmin, Here maps etc. Also Waze, Google • Offline maps Skobbler, MapsWithMe • Business around you Reviews, events, classifieds etc Yelp, Eventful, OpenTable etc • Transit and traffic info US, West Europe • Speed camera warnings Trapster, Mobi • Games: Foursquare • Sports trackers: RunKeeper, Endomondo • Taxi ordering Uhail
  • 7. Less successful applications • Friend tracking • Social: Facebook checkins • Track & Publish my location See OpenPaths, Glympse • Location-based advertising • Location-based alerts • Augmented reality (with maps)
  • 8. Hard problems • GPS takes battery • GPS coverage and accuracy is bad No indoors No Augmented Reality • Maps are limited No indoors No walking level • Real user needs are hard to estimate
  • 9. Successful apps • Local is local • Content is the king But expensive • Understand topic pymwymi • There is no killer app but you can create killer service • Location is just a technology Not the core differentiator, or business
  • 11. GIS definition • Geographic With geographical dimension • Information • System Software, servers, computers • Wikipedia: a system designed to capture, store, manipulate, analyze, manage, and present all types of geographically referenced data. In the simplest terms, GIS is the merging of cartography, statistical analysis, and database technology
  • 12. Traditional GIS • Started in early 1970’ies • Key companies, drivers ESRI, Intergraph, MapInfo (Pitney Bowes), AutoDesk, Oracle Universities: UMN etc • Key focus Desktop-GIS – special GIS tools Servers, client-server model • Expensive, specialized, heavy • Recent developments (from late 90ies) OGC standards: WMS, WFS, GML etc Cloud-based, mobile
  • 13. Neo-geography • Web/Internet-based Easy to use Cloud services • Cool startups GeoIQ, CartoDB, Boundless (OpenGeo), MapBox, GISCloud • Free commercial tools Google: Maps, Earth, SketchUp, FusionTables etc Yahoo, Microsoft Bing, MapQuest • Open source software OSGeo.org: server, desktop, web • Open sourced data OpenStreetMap, open data
  • 14. Internet trends • HTML5 stack Javascript, Node.js CartoCSS GeoJSON, TopoJSON Python Go • Github GeoGIT
  • 15. Mobile LBS future trends • Augmented Reality Issue: mobile sensors and UI (glasses) Needs powerful image processing • 3D 3D earth (2.5D) Buildings, textures etc – see Apple iOs Maps or Nutiteq • 360-degree view Issue: bandwidth • Walking/local/indoor maps Issue: content update is expensive No standard indoor positioning • Your ideas !
  • 16. GIS TECHNOLOGY AND DEVELOPMENT
  • 17. Why special approach • Data is quite complex Two-dimensional (or 3D, 4D) Complex relations Nice visualization is processing-hungry • Base maps Big datasets, different features • Specific map data Dynamic, can be big etc
  • 18. A lot of data in a single screen Type – 4 bytes Name – 100 bytes People – 4 bytes Checkins – 4 bytes Point on map – 16 bytes Base map – 32+ KB 27 relations 205 ways (lines) 1920 points (x 16 b)
  • 19. Geo basics • Data models vector raster other • Coordinates Projections, coordinate systems
  • 20. Data models • Raster PNG for maps, lossless JPG for aerials GeoTIFF, coverages Key parameters: bitmap resolution, size, channels • Vector Base objects: points, lines, polygons Collections: multi-polygon, multi-line, multi-point Attributes (fields): text/boolean/numeric/binary etc Texts on map - labels from attributes Layer – same as „table“ in DB Special cases: topological models, graphs
  • 22. Other data models • Elevation models DEM – Digital Elevation Model TIN - triangulated irregular network • 3D worlds Collada, X3D Google Earth Warehouse • Point clouds Lidar – laser measurements
  • 24. TIN
  • 27. GIS layers in practise • One base layer Background map: Google, OpenStreetMap etc Raster-based • Overlay layer(s) Points of Interest, markers GPS location – dynamic info Lines, Polygons Clustered points
  • 28. Demo • Quantum GIS with vector in action • Open vector data layers • Styling map
  • 30. Typical vector data operations • Display map Request data for bounding box (BBOX) or tiles Reprojection (if needed) Show set of layers Style data – colors, symbols etc Different map zooms have different data • Geocoding – address to coordinates • Reverse-geocoding • Find nearest neighbour(s) • Find objects in radius (buffer) • Calculate distance between objects • Find Point in area (polygon) • Routing – find optimal path in graph • Clustering - show big datasets on map
  • 31. Common GIS file formats • Shapefile (ESRI) – most common 4-5 files per layer: .shp, .dbf etc One geometry type per layer allowed No style information, pure geometry Optional: projection file .prj, spatial index, charset • KML (Google, open standard) Vector data, includes styles Special data types: 3D data (Collada), linked data, visual coverages Can have only WGS84 coordinates Can be KMZ – zipped file • Other formats SpatiaLite: vector and raster data. Any projection, no styles. GeoJSON and TopoJSON – web/Javascript-friendly Text files (CSV) with coordinates or addresses Every commercial GIS has own format(s) Free converter: http://www.gdal.org/ogr/ogr_formats.html
  • 32. Spatial SQL database basics • Special column data types(s): Geometry, Point, Polygon ... • Geographical indexing Usually R-Tree, based on object bounds • Geographical functions: Manipulations, relations, queries etc • Metadata table: Defines coordinate system, data type for every Geometry column
  • 38. Coordinate systems • Geographical – spherical Units: Latitude and Longitude Based on an ellipsoid, e.g. WGS-84 Datums, also WGS84 for GPS DMS for display, decimal degrees for programming • Projected - cartesian Units: usually meters (can be km, miles) Hundreds of named projections, mostly for local regions Reduce distortions: keep angles, distances, areas equal
  • 41. Different projections • The Globe Applet http://www.jhlabs.com/java/maps/proj/ • Check out some Oblique Mercator, Cassini, Rectangular Polyconic • Common in real life Plate Carre, Mercator, Spherical Mercator, UTM, Lambert Conformal Conic (in L-EST)
  • 42. Short and long projection description EPSG codes: 4-5 digit numbers • EPSG:4326 – WGS84 • EPSG:3301 – Estonian system • EPSG:3587 – „Google web Mercator“ Was also EPSG:900913 <EPSG:3301> PROJCS["Estonian Coordinate System of 1997", GEOGCS["EST97", DATUM["Estonia_1997", SPHEROID["GRS 1980",6378137,298.257222101, AUTHORITY["EPSG","7019"]], TOWGS84[0,0,0,0,0,0,0], AUTHORITY["EPSG","6180"]], PRIMEM["Greenwich",0, AUTHORITY["EPSG","8901"]], UNIT["degree",0.01745329251994328, AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4180"]], UNIT["metre",1, AUTHORITY["EPSG","9001"]], PROJECTION["Lambert_Conformal_Conic_2SP"], PARAMETER["standard_parallel_1",59.33333333333334], PARAMETER["standard_parallel_2",58], PARAMETER["latitude_of_origin",57.51755393055556], PARAMETER["central_meridian",24], PARAMETER["false_easting",500000], PARAMETER["false_northing",6375000], AUTHORITY["EPSG","3301"], AXIS["Y",EAST], AXIS["X",NORTH]]
  • 43.
  • 44. Coordinates as QR-Code • http://zxing.appspot.com/generator/ „GEO:26.7144,58.3784“
  • 46. Web maps • Google Maps Javascript, Static APIs, Earth 3D Geocoding and Directions (routing) services Mobile API: Android • Bing Maps Web, Mobile API (WP7, iPhone) • Here (ex Nokia Ovi / Navteq) Maps Web, Mobile (Qt, J2ME) • Apple Maps – iOs only
  • 47. Web map restrictions • Technical restrictions Limited styling options Limited to provided API-s, feature limits Can’t get map data, or even images Some mobile platforms not served at all • Commercial limits Some services (e.g. Navigation) require special license Advertising is added
  • 48. Commercial map data • Global vendors Vector: Here (Navteq/Nokia), TeleAtlas (TomTom), AND Aerial/Satellite: DigitalGlobe, Blom ASA ... • Local vendors Regio, Maa-amet In almost every country, quite detailed • Specifics Technically quite flexible Usually quite expensive
  • 49. OpenStreetMap (OSM) • Free and open data Vector data in 2D Streets, roads, buildings, amenities etc • A lot of services Map images (tiles), geocoders, routers etc Special views: opencyclemap, openpistemap etc • Everyone can improve the map www.openstreetmap.org www.maakaart.ee – in Estonian
  • 50. ID – web-based OSM editor
  • 51. JOSM – OSM main editor
  • 52.
  • 53. OSM advantages • Free and open to use No advertising, restrictions • Vector data access Custom styles for mapping Own filters of data on map (layers) Interactive data overlays (POI layers) Advanced services: routing, search, analysis, ... • Fast and easy updates Find error – go fix it yourself! Note: follow community guidelines
  • 55. Main OGC standards • WMS – Web Mapping Service Send coordinates in URL, get map image • WFS – Web Feature Service Send coordinates in URL, get vector data as GML WFS-T – enables writing to server • GML – Geography Markup Language XML-based Specific schemas depending on application • TMS – Tiled Map Service Get 256x256-pixel map images for x, y, zoom • Others GeoRSS – RSS with geotags Geo EXIF – GPS tags for digital photos
  • 56. OCG
  • 57. Free GIS tools • Desktop tools – mapping, analysis, processing Quantum GIS (QGIS) uDig, OpenJUMP, gvSIG GRASS, R – analysis Google Earth - view/create KML Trimble SketchUp – create 3D models • Databases Data sharing/storage Analytical queries, eg. count points in regions PostGIS – Postgres add-on. Pgrouting Spatialite – SQLite extension • Processing GDAL/OGR – raster and vector library, command-line converters
  • 58. Free GIS tools for developers • JTS Java Topology Suite, ports in C (GEOS) etc Lot of complex algorithms, geometries, graphs, geographical indexes • Proj.4 C-based, has few ports Hundreds of predefined projections • SpatiaLite SQLite extension, for files Also some raster features • PostGIS Postgres SQL server extension for vector Raster features in next version
  • 59. Free GIS Servers • Web Mapping GeoServer: WMS, WFS, WCS, caching MapServer: WMS, TMS, WFS Mapnik: TMS, TileMill: good for on-line styling, MBTiles packages • Web Processing Services Degree etc • Developer toolkits Leflet - javascript OpenLayers 3 – Javascript GeoMajas – Java-based MapFish – Python-based • Cooperation project: www.osgeo.org
  • 60. Free GeoWebServices • CartoDB.com Hosted PostGIS servers • GISCloud.com Also server-based editing is possible Not very mature • OpenStreetMap Only for community-created data Content requirements: verifyable objects etc • Github GeoJSON and TopoJSON support geojson.io editor service • Google Fusion Tables General data table API service Includes basic geo-features
  • 61. Build your own geodatabase • When you need own server: Special requirements Cannot customize readymade servers Specific use cases: user permissions etc • Using OSGeo tools Database: PostGIS Web maps: eg MapServer Client tools: Geomajas, Leaflet Bundle: OpenGeo Suite by Boundless, MS4W • Using OSM toolkit Web maps: PostGIS + Mapnik API/data management: Rails_port (ruby), Postgres Client-side modification: JOSM, ID etc
  • 63. General model • Server-side Google, Bing, OpenStreetMap etc etc Map content is „already there for free“ Tile-, WMS or vector based API • Client-side JavaScript, Flash, Silverlight, plug-in or HTML API Bundled with server: Google, Bing etc OpenSource: Leaflet, OpenLayers 3
  • 64. Tiled map server – Bing sample
  • 65. Web mapping client API - Leaflet // create a map in the "map" div, set the view to a given place and zoom var map = L.map('map').setView([51.505, -0.09], 13); // add an OpenStreetMap tile layer L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' }).addTo(map); // add a marker in the given location, attach some popup content to it and open the popup L.marker([51.5, -0.09]).addTo(map) .bindPopup('A pretty CSS3 popup. <br> Easily customizable.') .openPopup(); See more from http://leafletjs.com/index.html
  • 66. Web mapping server APIs • WMS – view-based http://kaart.maaamet.ee/wm s/alus-geo ?SERVICE=WMS &VERSION=1.1.1 &REQUEST=GetMap &LAYERS=HALDUSPIIRID,BAAS KAART &STYLES=default &SRS=EPSG:4326 &BBOX=26.7,58.3,26.8,58.4 &WIDTH=600 &HEIGHT=600 &FORMAT=image/png& • TMS – tile-based http://tile.openstreetmap.org /13/4702/2451.png /13/4703/2451.png /13/4704/2451.png /13/4702/2452.png /13/4703/2452.png /13/4704/2452.png ...
  • 68. OSM Tile-based map: zoom 13 4703 4704 2450 2451 4705 Y X
  • 69. Tiles or WMS ? • Tile advantages Can be cached in client Can be pre-rendered in server Can be preloaded to client Faster, suitable for high-traffic services • WMS advantages Supports selection of projection, layers, styles Smaller number of requests Suitable for high flexibility services (GIS apps)
  • 70. MOBILE LBS APP DESIGN TIPS
  • 71. Bad UX design • Long alphabetical listings, no search Bad example: RMK Android app • Ignore geographical dimension Mobile apps are used „out in a wild“ • Too many points on map Use clusters – group points Use filters – show minimal number • Assume user GPS location User is maybe planning to go there • Require network connectivity • Unoptimized user experience LBS must be more robust than average mobile app (eg game) It is probably not used just to kill some tome
  • 72. Common technical mistakes • Geographical data handled as non-geographical Using place names / addresses to find nearest Use just two float fields for geographical objects Cannot be indexed, can’t use existing geotools • Ignore GPS specifics Location fix takes long time: 20 sec to 20 min Fix is not always available: indoors etc Check accuracy and availability GPS kills the battery! • Coordinate system errors mix degrees/meters, projections swap x/y
  • 73. ANDROID APPS WITH LOCATION
  • 74. Location determination • Plain GPS Free satellite signal – requires 4 satellites min. Accuracy: ~5 meters Time to first fix (TFF) – up to 20 minutes • AGPS Assisted by network – TFF ~20-30 sec Claimed to have also better sensibility • Network-based locations Immediate but less accurate Mobile network cell (Cell-ID) – ~1 km error average, can be 10 km Wifi location: ~100 m accuracy Cell/Wifi databases: user-collected. Google, Skyhook, Apple, Nokia, OpenCellID etc • Hybrid method First give quick inaccurate network location, then try GPS Used in Android, iPhone
  • 75. Location API in Android • Location Provider Selected automatically based on set requirements: Cell-id,WiFI or GPS • Features Listen for updates – most common Last known location (cached) – not suggested Proximity alerts – not guaranteed • Best strategy depends on app http://developer.android.com/guide/topics/location/obtaining-user- location.html
  • 76. Mobile mapping – main platforms • Smartphone platforms Most have GPS and good screen • iPhone Bundled Apple MapKit, Apple Maps. Opensource: Route-me, WhirlyGlobe • Android Bundled Google MapView, Google Maps Opensource tools: Osmand, Nutiteq, Mapsforge etc • Windows Phone 7/8 Bing maps SDK, Nokia/Here Maps SDK
  • 77. Mobile mapping – other platforms • GPS : not guaranteed • BlackBerry Java BB Maps, Nutiteq SDK • Nokia Asha (S40) Nokia Maps SDK, Nutiteq • Samsung Bada deCarta SDK
  • 78. Mapping SDKs on Android • Raster-based Google Maps API – no offline, routing, license limits Nutiteq 3D Maps SDK – offline, 3D features OSMDroid – LGPL, Android-specific • Vector-based Mapsforge – GPL, only offline , nice rendering Droyd SDK – also navigation, only offline • 3D Earth solutions Glob3 Mobile – in development, BSD license • HTML5 OpenWebGlobe – WebGL based 3D earth
  • 79. Typical geotasks in Android • Display map MapView API – interactive map: Google Maps, 2D, online Add clickable points to map (annotations) Add overlays (rasters) Show user GPS location • Geocoding android.location.Geocoder API, online • Reverse-geocoding android.location.Geocoder getFromLocation() • Find nearest neighbour(s) • Find objects in radius (buffer) Depends on data source • Calculate distance between objects Location.distanceTo() method • Find Point in area (and other georelations) Spatial-enabled GIS engine: PostGIS in server or Spatialite in phone • Routing – find optimal path in graph Google online API, other on-line routing engines Spatialite routing, in small area • Point Clustering https://github.com/weakwire/AndroidMapCluster
  • 80. Other useful free tools for mobile • Spatialite = SQLite + GEO Big datasets (8M objects DB) Spatial operators, e.g. distance, nearest ... Requires NDK/JNI. Prebuilt binary in nutiteq.github.io • JTS – Java Topology Suite Java-level spatial graphs, operators, geometries • Free GIS tools – processing/preview data See above
  • 81. Nutiteq 3D Android Maps SDK • Mapping Number of pre-defined map sources, OpenStreetMap default Custom map sources, you can define own tile API On-line and off-line mapping (prepackaged, stored, cached) • 3D support 2.5D views 3D models: KMZ/OpenCollada • Other features Points of Interest (POI) on map (layers, individual places) Polygons and lines on map Raster map overlays Vector layers
  • 82. Do it yourself speed camera warning • Speed camera alerts on Android Shows map, gets GPS location, reads data, plays alerts • Tools Nutiteq Mapping SDK – nutiteq.github.com/hellomap3d • Content POIPlaza.com data file OSM maps (online or offline) Alarm audio mp3 file • Bonus points Add a 3D driving car from Monster Milktruck as your location Speeding alerts from current speed
  • 83. Thank you! Jaak Laineste CEO, Nutiteq www.nutiteq.com jaak@nutiteq.com