web-service based mobile geospatial application development using python
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.TRANSCRIPT
Strategic Research in
Advanced
Geotechnologies
Junjun Yin, DMC - DIT
www.StratAG.ie
Junjun Yin
Digital Media Centre
Dublin Institute of Technology
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
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
Related applications
Target location
A
B
North
A
B
Lower point
Upper point
Bounding box
Bounding circle
Radius
Too much info!
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)
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
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
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”}}}
• 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
• 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 …
A case study on iPhone
Thanks!