MOBILE LOCATION-BASED APPS - Arvutiteaduse ?· MOBILE LOCATION-BASED APPS ... •Mobile Positioning…

  • Published on
    21-Aug-2018

  • View
    212

  • Download
    0

Embed Size (px)

Transcript

  • MOBILE LOCATION-BASED APPS Lecture in University of Tartu

    Jaak Laineste, 16.10.2012

  • LOCATION-BASED SERVICE OVERVIEW

    Part 1

  • 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

  • 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

  • Two meanings of LBS

    Classical definition: Mobile Positioning MPS

    Mobile operators

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

    Todays LBS : Smartphones with GPS, tablets

    mobile apps, web services, HTML5

    Google Maps, PND, Check-ins, Google Now

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

    http://www.flipper.ee/

  • 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

  • Un-successful applications

    Friend tracking

    Track & publish my location

    Location-based advertising

    Location-based alerts

    Augmented reality (with maps)

  • 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

  • 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

  • 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

  • Classic GIS

    Started in early 1970ies 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

  • 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

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

  • 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

    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

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

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

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

  • 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

  • Geometry primitives in WKT (2D)

  • Multipart geometries in WKT (2D)

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

    EPSG:4326 WGS84 EPSG:3301 Estonian system EPSG:3587 Google web

    Was also EPSG:900913

    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

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

  • MAP DATA SOURCES

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

  • Web map restrictions

    Technical restrictions Cannot be restyled, no visual customization

    Limited to provided API-s, feature limits

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

  • 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

    http://www.openstreetmap.org/http://www.maakaart.ee/

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

  • 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

  • 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

  • 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

  • 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

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

  • Tiled map server Bing sample

  • Web mapping client API - OpenLayers

    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

    );

    }

  • 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));

  • 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

    ...

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