81
MOBILE LOCATION-BASED APPS Lecture in University of Tartu Jaak Laineste, 13.10.2011

MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

MOBILE LOCATION-BASED APPS Lecture in University of Tartu

Jaak Laineste, 13.10.2011

Page 2: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

LOCATION-BASED SERVICE OVERVIEW

Part 1

Page 3: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Background

• GIS/LBS experience

15 years in GIS/mapping, 10 years in LBS

Mobile operator LBS in all over the world

Nutiteq est. 2006

• Nutiteq and mobile development

Part of Mobi Solutions group since 2009

J2ME, Android, BlackBerry, iPhone teams

Major customer projects

Page 4: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Location-Based Services

• Location-based: 80% of data

• Service (or mobile application)

• Mobile technologies (phones, networks)

• Mobile positioning

• LBS is a technology, not application type

Can be aspect of any application type

Page 5: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Two meanings of LBS

• Old meaning (200x):

Mobile Positioning – MPS

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

• Today’s LBS : (201x)

smartphones with GPS, tablets

mobile apps, web services, HTML5

Page 6: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Operator-based LBS

• Mobile Positioning Find location using mobile network

Works with any mobile, no requirements

Accuracy without GPS: 300m ... 30 km (~1 km avg)

Can also use in-phone GPS / A-GPS

Only operator can do

• Typical services FriendFinder, Games

Find Nearest

Fleet Management

• Recent trends Operators open APIs, including location

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

Page 7: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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

where available

• Trapster

• Social: Facebook checkins

• Games: Foursquare

Page 8: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Un-successful applications

• friend tracking

• track my location

• location-based advertising

• location-based alerts

• augmented reality

Page 9: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Hard problems

• GPS takes too much battery

• GPS coverage and accuracy is bad

No indoors

• Maps are limited

No indoors

No walking level

• Real needs are hard to estimate

Page 10: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Successful apps

• Local is local

• Content is important, and expensive

• Understand topic

pymwymi

• There is no killer app

but you can create killer service if you do the execution

• Location is just a technology

Aspect of an application, often not the core

Page 11: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

GIS INTRODUCTION

Part 2

Page 12: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

GIS term

• 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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

„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

Page 14: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Neo-geo

• Web/Internet-based Cloud services

• 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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Mobile LBS future

• Augmented Reality Issue: mobile sensors

Needs powerful image processing

• 3D 3D earth (2.5D)

Buildings, textures etc

• 360-degree view Issue: bandwidth

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

• Your ideas !

Page 16: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

GIS TECHNOLOGY AND DEVELOPMENT

Page 17: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Why special approach

• Data is quite complex

Two-dimensional

Can be even 3D

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

"It's a small world, but I wouldn't want to

paint it.„

- Steven Wright

Page 19: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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+ (500+)KB

27 relations

205 ways (lines)

1920 points (x 16 b)

Page 20: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Geo basics

• Data models

vector

raster

other

• Coordinates

Projections, coordinate systems

Page 21: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Data models

• Raster PNG for maps, lossless

JPG for aerials

GeoTIFF, coverages

Key parameter: resolution, size

• Vector Base primitives: points, lines, polygons

Compounds: multi-point, multi-line, multi-polygon

Attributes - text/boolean/numeric/binary etc

Texts on map - labels from attributes

Layer – same as „table“ in DB, „class“ in OOP

Special vector: topological models, graphs

Page 22: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Hillshade from DEM

Page 24: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

TIN

Page 25: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Point cloud

Page 26: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

GIS Layers

Page 27: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Demo

• Quantum GIS with vector in action

• Open vector data layers

• Styling map

Page 29: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

QGIS with OSM data

Page 30: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Typical vector data operations

• Mapping 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 polygon

• Routing – find optimal path in graph

• Clustering - show big datasets on map

Page 31: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Geometry primitives in WKT (2D)

Page 34: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Multipart geometries in WKT (2D)

Page 35: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

PROJECTIONS

Page 36: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Geographical coordinate space

Page 38: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Cartesian (projected) coordinate space

Page 39: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group
Page 42: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Coordinates as QR-Code

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

„GEO:26.7144,58.3784“

Page 43: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

MAP DATA SOURCES

Page 44: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Potlatch2 – web-based OSM editor

Page 49: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

JOSM – OSM main editor

Page 50: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group
Page 51: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

GIS TOOLS

Page 53: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

OCG

Page 55: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

WEB MAPPING DEVELOPENT IN SHORT

Page 61: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Tiled map server – Bing sample

Page 63: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

WMS image response

26.7E,58.3N

26.8E,58.4N

600px

600px

Page 67: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

OSM Tile-based map: zoom 13

4703 4704

2450

2451

4705

Y

X

Page 68: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

MOBILE LBS APP DESIGN TIPS

Page 70: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

ANDROID APPS WITH LOCATION

Page 73: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Mobile mapping – main platforms

• Smartphone platforms Most have GPS and good screen

• iPhone Bundled Apple MapKit, Google Maps.

Opensource: Route-me

• Android Bundled Google MapView, Google Maps

OpenSource tools: Osmand, Nutiteq etc

• Windows Phone 7 Bing maps SDK, Nokia Maps SDK

OpenStreetMap – coming ?

Page 76: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 (beta), Nutiteq

• Samsung Bada deCarta SDK

Page 77: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

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 79: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Nutiteq SDK features

• Mapping Number of pre-defined APIs (OSM, CloudMade,NAVTEQ, Microsoft,WMS,

TMS etc)

Custom map sources, you can define own tile API

On-line and off-line mapping (prepackaged, stored, cached)

• Other features Points of Interest (POI) on map (KML, individual places)

Polygons and lines on map

Raster map overlays

Search place-names (geocoding)

Routing (CloudMade, YourNavigation)

Dynamic location (GPS, cell-ID)

• Platforms Android, BlackBerry (both CLDC and MIDP)

Java ME / J2ME (CLDC 1.1, MIDP 2.0)

Footprint: minimum ~100 KB, depending on used features

Page 80: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Do your first Android LBS app

• Speed camera alerts on Android Shows map, gets GPS location, reads data, plays alerts

• Tools Android SDK – developer.android.com

Eclipse IDE (Java)

Nutiteq Mapping SDK – www.nutiteq.com

• Content POIPlaza KML file

OSM maps, alarm audio mp3 file

• Instructions http://www.scribd.com/doc/68530221

Page 81: MOBILE LOCATION-BASED APPS - Arvutiteaduse instituut · MOBILE LOCATION-BASED APPS Lecture in University of Tartu ... •Nutiteq and mobile development Part of Mobi Solutions group

Thank you!

Jaak Laineste

CEO, Nutiteq

www.nutiteq.com

[email protected]