82
MOBILE LOCATION-BASED APPS Lecture in University of Tartu Jaak Laineste, 16.10.2012

MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

  • Upload
    voxuyen

  • View
    240

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

MOBILE LOCATION-BASED APPS Lecture in University of Tartu

Jaak Laineste, 16.10.2012

Page 2: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

LOCATION-BASED SERVICE OVERVIEW

Part 1

Page 3: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Jaak Laineste

• GIS/LBS experience

17 years in GIS/mapping, 12 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

J2ME, Android, BlackBerry, iPhone teams

Naval navigation apps

Page 4: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

Can be aspect of any application type

Page 5: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Two meanings of LBS

• „Classical“ definition:

Mobile Positioning – MPS

Mobile operators

User Interface: SMS, Web, WAP, USSD, IVR

• Today’s LBS :

Smartphones with GPS, tablets

mobile apps, web services, HTML5

Google Maps, PND, Check-ins, Google Now

Page 6: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

• Recent trends Operators open APIs, including location

There are aggregators: e.g. LocationLabs, Loc-Aid

Location-based advertising – www.flipper.ee (EMT, Estonia)

Page 7: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Popular LBS apps in smartphones

• Navigation Tomtom, Navigon, Garmin, Nokia maps etc. Also Waze

• Business around you Reviews, events, classifieds etc

Yelp, Loopt, Qype, Zvents, Eventful, Opentable etc

• Transit and traffic info US, West Europe

• Trapster speed camera warnings

• Social: Facebook checkins

• Games: Foursquare

• Sports trackers: Runkeeper, Endomondo

Page 8: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Un-successful applications

• Friend tracking

• Track & publish my location

• Location-based advertising

• Location-based alerts

• Augmented reality (with maps)

Page 9: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Hard problems

• GPS takes too much battery

• GPS coverage and accuracy is bad

No indoors

• Maps are limited

No indoors

No walking level

• Real user needs are hard to estimate

Page 10: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

Page 11: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

GIS INTRODUCTION

Part 2

Page 12: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

Page 13: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

„Classic“ GIS

• Started in early 1970’ies

• Key companies, drivers ESRI, Intergraph, MapInfo, AutoDesk, Oracle

Universities

• 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

Page 14: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Neo-geography

• Web/Internet-based Easy to use Cloud services

• Cool startups GeoIQ, CartoDB, 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

Page 15: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Mobile LBS future trends

• Augmented Reality Issue: mobile sensors

Needs powerful image processing

• 3D 3D earth (2.5D)

Buildings, textures etc – Apple iOs 6 Maps

• 360-degree view Issue: bandwidth

• Walking/local/indoor maps Issue: content update is expensive

• Your ideas !

Page 16: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

GIS TECHNOLOGY AND DEVELOPMENT

Page 17: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

Page 18: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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)

Page 19: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Geo basics

• Data models

vector

raster

other

• Coordinates

Projections, coordinate systems

Page 20: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Data models

• Raster PNG for maps, lossless

JPG for aerials

GeoTIFF, coverages

Key parameters: bitmap resolution, size

• Vector Base objects: points, lines, polygons

Collections: multi-point, multi-line, multi-polygon

Attributes (fields): text/boolean/numeric/binary etc

Texts on map - labels from attributes

Layer – same as „table“ in DB

Special cases: topological models, graphs

Page 21: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

GIS Layers

Page 22: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

Page 23: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Hillshade from DEM

Page 24: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

TIN

Page 25: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Point cloud

Page 26: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

3D model

Page 27: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

GIS layers simplified

• 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

Page 28: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Demo

• Quantum GIS with vector in action

• Open vector data layers

• Styling map

Page 29: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

QGIS with OSM data

Page 30: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Typical vector data operations

• Display map Request data for bounding box (BBOX)

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

Page 31: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Common GIS Data 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

• 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.

Text files with coordinates or addresses

Every commercial GIS has own format(s)

Free converter: http://www.gdal.org/ogr/ogr_formats.html

Page 32: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Spatial SQL database basics

• Special column data types(s):

Geometry, Point, Polygon ...

• Geographical indexing

Usually R-Tree, based on object bounds (bbox)

• Geographical functions:

Manipulations, relations, queries etc etc

• Metadata table:

Defines coordinate system, data type for every Geometry column

Page 33: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Geometry primitives in WKT (2D)

Page 34: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Multipart geometries in WKT (2D)

Page 35: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

PROJECTIONS

Page 36: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

Page 37: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Geographical coordinate space

Page 38: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Cartesian (projected) coordinate space

Page 39: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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)

Page 40: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Short and long projection description

EPSG codes:

• EPSG:4326 – WGS84

• EPSG:3301 – Estonian system

• EPSG:3587 – „Google web“ 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]]

Page 41: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,
Page 42: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Coordinates as QR-Code

• http://zxing.appspot.com/generator/

„GEO:26.7144,58.3784“

Page 43: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

MAP DATA SOURCES

Page 44: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Web maps

• Google Maps

Javascript, Flash, Static APIs, Earth 3D

Geocoding and Directions (routing) services

Mobile APIs: Android, iPhone

• Bing Maps

Web, Mobile API (WP7, iPhone)

• Nokia Ovi Maps

Web, Mobile (Qt, J2ME)

Page 45: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Web map restrictions

• Technical restrictions

Cannot be restyled, no visual customization

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

Page 46: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Commercial map data

• Global vendors

Vector: Navteq (Nokia), TeleAtlas (TomTom), AND

Aerial/Satellite: DigitalGlobe, Blom ASA ...

• Local vendors

Regio, Maa-amet

In almost every country, more detailed to globals

• Specifics

Technically quite flexible

Usually quite expensive

Page 47: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

Page 48: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Potlatch2 – web-based OSM editor

Page 49: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

JOSM – OSM main editor

Page 50: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,
Page 51: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

Page 52: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

GIS TOOLS

Page 53: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

Page 54: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

OCG

Page 55: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Free GIS tools

• Desktop tools – mapping, analysis, processing Quantum GIS (QGIS)

uDig, OpenJUMP, gvSIG

GRASS – analysis

Google Earth - view/create KML

Google SketchUp – create 3D models

• Databases Data sharing/storage

Analytical queries, eg. count points in regions

PostGIS – Postgres add-on.

Pgrouting

PostGIS Raster (in next version)

• Processing GDAL/OGR – raster and vector library, command-line converters

Page 56: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Free GIS tools for developers

• JTS Java Topology Suite, ports in C 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

Page 57: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Free GIS Servers

• Web Mapping GeoServer: WMS, WFS, WCS, caching

MapServer: WMS, TMS, WFS

MapGuide OS

Mapnik: TMS, OSM

TileMill: good for on-line styling

• Web Processing Services Degree etc

• Developer toolkits OpenLayers – Javascript

GeoMajas – Java-based

MapFish – Python-based

• Cooperation project: www.osgeo.org

Page 58: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Free GeoWebServices

• Google Fusion Tables General data table API service

Very basic geo-features

• GeoCommons.com Nice maps and analyses, a lot of content shared

No editing, content for US mostly

• GISCloud.com Also server-based editing is possible

Not very mature

• OpenStreetMap Only for community-created data

Content requirements: verifyable objects etc

• CartoDB.com – closed beta now Hosted GIS servers

Page 59: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Build your own geodatabase

• When you need own server: Requirements are very different

Cannot customize readymade servers

Specific use cases: user permissions etc

• Using OSGeo tools Database: PostGIS

Web maps: eg MapServer

Client tools: Geomajas, OpenLayers

• Using OSM toolkit Web maps: PostGIS + Mapnik

API/data management: Rails_port (ruby), Postgres

Client-side modification: JOSM, Potlatch2 etc

Page 60: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

WEB MAPPING DEVELOPENT IN SHORT

Page 61: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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: OpenLayers

Page 62: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Tiled map server – Bing sample

Page 63: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Web mapping client API - OpenLayers

<script>

function init() {

map = new OpenLayers.Map("basicMap");

var mapnik = new OpenLayers.Layer.OSM();

map.addLayer(mapnik);

map.setCenter(new OpenLayers.LonLat(13.41,52.52) // Center of the map

.transform(

new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984

new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection

), 15 // Zoom level

);

}

</script>

Page 64: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

OpenLayers – add marker

...

var lonLat = new OpenLayers.LonLat(-0.1279688 ,51.5077286 )

.transform(

new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984

map.getProjectionObject() // to Spherical Mercator Projection

);

var markers = new OpenLayers.Layer.Markers( "Markers" );

map.addLayer(markers);

markers.addMarker(new OpenLayers.Marker(lonLat));

Page 65: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Web mapping server APIs

• WMS – view-based

http://kaart.maaamet.ee/wms/alus-geo

?SERVICE=WMS

&VERSION=1.1.1 &REQUEST=GetMap &LAYERS=HALDUSPIIRID,BAASKAART &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

...

Page 66: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

WMS image response

26.7E,58.3N

26.8E,58.4N

600px

600px

Page 67: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

OSM Tile-based map: zoom 13

4703 4704

2450

2451

4705

Y

X

Page 68: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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)

Page 69: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

MOBILE LBS APP DESIGN TIPS

Page 70: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Bad UX design

• Long alphabetical listings, no search Example: RMK Android app

• Ignore geographical dimension Mobile apps are used „out in a wild“

• Too many points on map Clusters – group points

Filters – show minimal number

• Assume user GPS location User is maybe planning to go there

• Assume always 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

Page 71: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

GPS kills the battery!

• Coordinate system errors mix degrees/meters, projections

swap x/y

Page 72: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

ANDROID APPS WITH LOCATION

Page 73: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

Page 74: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Location API in Android

• Location Method 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

Page 75: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Mobile mapping – main platforms

• Smartphone platforms Most have GPS and good screen

• iPhone Bundled Apple MapKit, Apple Maps.

Opensource: Route-me

• Android Bundled Google MapView, Google Maps

OpenSource tools: Osmand, Nutiteq etc

• Windows Phone 7/8 Bing maps SDK, Nokia Maps SDK

OpenStreetMap – coming ?

Page 76: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Mobile mapping – other platforms

• GPS : not guaranteed

• BlackBerry BB Maps, Nutiteq SDK

• Nokia Symbian and Meego Nokia Maps, Qt-based

• Nokia S40 Nokia Maps SDK, Nutiteq

• Samsung Bada deCarta SDK

Page 77: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Mapping SDKs on Android

• Raster-based Google Maps API – no offline, routing, license limits

Nutiteq SDK – offline, multi-platform. GPL+commercial

OSMDroid – LGPL, Android-specific

• Vector-based Mapsforge – GPL, only offline , nice rendering

Droyd SDK – also navigation, only offline

Ericsson Maps – online data, ugly rendering

• 3D Earth solutions Glob3 Mobile – in development, BSD license

• HTML5 OpenLayers Mobile

OpenWebGlobe – WebGL based 3D earth

Page 78: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

Page 79: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

bitbucket.org/nutiteq/android-map-samples/ ...

• JTS – Java Topology Suite

Java-level spatial graphs, operators, geometries

• Free GIS tools – processing/preview data

See above

Page 80: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

Page 81: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

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

Page 82: MOBILE LOCATION-BASED APPS - Arvutiteaduse … · MOBILE LOCATION-BASED APPS ... •Mobile Positioning Find location using mobile network ... GPS location – dynamic info Lines,

Thank you!

Jaak Laineste

CEO, Nutiteq

www.nutiteq.com

[email protected]