15
Strategic Research in Advanced Geotechnologies Junjun Yin, DMC - DIT

Web-service based Mobile Geospatial Application Development using Python

Embed Size (px)

DESCRIPTION

As the development of mobile technology keeps marching forward, a noticeable trend of integrating location- and orientation-aware sensors (i.e., GPS receiver, digital compass, and accelerometer) into today’s smartphones has significantly promoted the development of mobile Location Based Services (LBS). At the same time, geospatial information is increasingly recognized as the common denominator in both today’s “Web 2.0” peer-to-peer social network era and tomorrow’s “Web 4.0”. As a result, embracing the growing rich spatial resources and adopting them for the mobile geospatial application development is essential. However, considering the large amount spatial data for processing and the physical limitation of today’s mobile devices in relation to battery power, CPU speed and data storage etc., it is nearly impossible to accomplish all computation intensive tasks efficiently on the device itself. Therefore, client-server architecture is usually a preferred option where the mobile devices act as clients sending requests and receiving responses whilst the calculation modules are wrapped and delivered in the form of web services. In this case, on the server side, the geospatial applications can take advantages of the capability of a variety of spatial databases back-ends, including spatial indexing, searching and retrieving. There are now a variety of Python modules, libraries and open sources etc. available for fast constructing and deploying web services for mobile geospatial applications. This talk attempts to give an introduction on using Python for building RESTful web-services for mobile geospatial application development, including back-end spatial database access and spatial information retrieval.

Citation preview

Page 1: Web-service based Mobile Geospatial Application Development using Python

Strategic Research in

Advanced

Geotechnologies

Junjun Yin, DMC - DIT

Page 2: Web-service based Mobile Geospatial Application Development using Python

www.StratAG.ie

Junjun Yin

Digital Media Centre

Dublin Institute of Technology

Web-service based Mobile Geospatial Application Development using Python

Page 3: Web-service based Mobile Geospatial Application Development using Python

Location- and orientation aware Smart Phones

Wi-Fi GSM tower GPS satellite

N+x

+z +

y

Page 4: Web-service based Mobile Geospatial Application Development using Python

GeoSpatial Information Retrieval for Mobile Devices

• Mobile Location Based Service (LBS)– User’s current location (latitude/longitude)– User’s facing direction (azimuth)

• Geospatial Queries in relation to user’s current locatio– Proximity query (Nearest-Neighbours)

• All the cafés around• All the point-of-interests around• …

• Information over load problem

Page 5: Web-service based Mobile Geospatial Application Development using Python

Related applications

Page 6: Web-service based Mobile Geospatial Application Development using Python

Target location

A

B

North

A

B

Lower point

Upper point

Bounding box

Bounding circle

Radius

Too much info!

Page 7: Web-service based Mobile Geospatial Application Development using Python

GeoWands via Mobile Spatial Interaction

• Mobile Spatial Interaction– Spatial databases

• Spatial data storage• Spatial index for rapid data access

– Spatial operators• Topological operations• Intersection, contain, touch, etc.

– Human Interaction– Gesture– Visibility (field of view)

Page 8: Web-service based Mobile Geospatial Application Development using Python

Spatial Database

Location & orientation aware mobile device

Internet

Wi-Fi

Data Warehouse

GSM tower GPS satellite

Mobile Positioning Module

Data Management Module

N+x

+z +

y

Mobile Orientation Module

Web Services Web Services

Application Server

Figure. The overall diagram for the system

Page 9: Web-service based Mobile Geospatial Application Development using Python

Python for Web Service and Spatial Database

• Python for Web Service– SOAP– Restful style

• URL based Http request• XML/JSON (GeoJSON) output

– Turbo Gears/ Django

Page 10: Web-service based Mobile Geospatial Application Development using Python

Example:http://threedq.webhop.org/POI/format=JSON&lat=53.3387

&lng=6.2675heading=44.0&tilt=20.8

{“Result”:{name:”Jacobs factory”coordinate:{

lat:” 53.3321”lng:” -6.2668”}}}

Page 11: Web-service based Mobile Geospatial Application Development using Python

• Python for spatial databases– CX_Oracle– GEOS python bindings– Other open sources ported python bindings via SWIG

• VisiLibity framework for visibility calculations• GDAL for Digital Elevation Model (DEM) surface generation• GEOS for geospatial objects topological relationship determination

Page 12: Web-service based Mobile Geospatial Application Development using Python

• Other python merits– PyS60 for Symbian devices

• A previous example use python on Navigator 6210

– Customized map tiles from OpenStreetMap (OSM) for offline and stylish usage

– And many more …

Page 13: Web-service based Mobile Geospatial Application Development using Python

A case study on iPhone

Page 14: Web-service based Mobile Geospatial Application Development using Python
Page 15: Web-service based Mobile Geospatial Application Development using Python

Thanks!