The following example (invoked in a Nokia N95 device) demonstrates how to use the Python positioning module to obtain information about the positioning technologies in the device:
>>> import positioning >>> positioning.modules() [{'available': 0, 'id': 270526873, 'name': u'Bluetooth GPS'}, {'available': 1, ' id': 270526858, 'name': u'Integrated GPS'}, {'available': 1, 'id': 270559509, 'n ame': u'Network based'}] >>> positioning.default_module() 270526858 >>> positioning.module_info(270526858) {'available': 1, 'status': {'data_quality': 3, 'device_status': 7}, 'version': u '1.00(0)', 'name': u'Integrated GPS', 'position_quality': {'vertical_accuracy': 10.0, 'time_to_first_fix': 1000000L, 'cost': 1, 'time_to_next_fix': 1000000L, 'h orizontal_accuracy': 10.0, 'power_consumption': 3}, 'technology': 1, 'id': 27052 6858, 'capabilities': 127, 'location': 1} >>>
The following example demonstrates how to use the Python positioning module.
# information about available positioning modules print "***available modules***" print positioning.modules() print "" # id of the default positioning module print "***default module***" print positioning.default_module() print "" # detailed information about the default positioning module print "***detailed module info***" print positioning.module_info(positioning.default_module()) print "" # select a module (in practise, selecting default module has no # relevance.). positioning.select_module(positioning.default_module()) # set requestors. # at least one requestor must be set before requesting the # current position or last position. # the last requestor must always be service requestor # (whether or not there are other requestors). positioning.set_requestors([{"type":"service", "format":"application", "data":"test_app"}]) # get the last position. print positioning.last_position()
An example dictionary returned/printed from the above call to last_position function could be as follows
{'vertical_accuracy':59.0,'time':1206530248.329,'latitude':12.956741,'altitude': 811.0,'horizontal_accuracy':41.77254404,'longitude':77.715568724} # get the last position if the device's position has not previously been # discovered. print positioning.last_position()
An example dictionary returned/printed from the above call to last_position function could be as follows
{'vertical_accuracy':NaN,'time':1206530248.329,'latitude':NaN,'altitude':NaN, 'horizontal_accuracy':NaN,'longitude':NaN} # Example 1. Blocking call # get the position. # note that the first position()-call may take a long time # (because of gps technology). print "***position info***" print positioning.position() print "" # re-get the position. # this call should be much quicker. # ask also course and satellite information. print "***course and satellites***" print positioning.position(course=1,satellites=1) print "" # Example 2. Non-blocking call def cb(event): print "---" print event print "---" print "***starts the position feed***" print positioning.position(course=1,satellites=1, callback=cb, interval=500000, partial=0)
An example dictionary returned/printed from the above example script could be as follows:
{'satellites': {'horizontal_dop': 2.34999990463257, 'used_satellites': 5, 'verti cal_dop': 2.29999995231628, 'time': 1187167353.0, 'satellites': 11, 'time_dop': 1.26999998092651}, 'position': {'latitude': 60.217033666473, 'altitude': 42.0, ' vertical_accuracy': 58.0, 'longitude': 24.878942093007, 'horizontal_accuracy': 4 7.531005859375}, 'course': {'speed': 0.0500000007450581, 'heading': 68.959999084 4727, 'heading_accuracy': 359.989990234375, 'speed_accuracy': NaN}}
To run the script in the emulator you must configure PSY emulation from your emulator (SimPSYConfigurator Select Config File <some config files>or Tools Position).
See About this document... for information on suggesting changes.