Hi, I am happy user of Nokia 770 tablett and one application for Nokia 770 is maemo mapper (beta navigation application). And the following script should run under mm (for Debian). Its developer told me it wans intended for other developers. I have no idea how to write Python script so please tell me how to learn how the following script works and how to modify it to be fully working, Frankly speaking I would prefer to pay for your kind assistance as it may take me to much time to learn some Python and understand the following script.
I would like to modify it to add 2 more columns to SQL (sqlite3) POI database, to set proximity value and spead limit as in safety cam POI in standard car navigation systems. Please let me know your opinion. Darius #!/usr/bin/python2.5 # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA __author__ = "Henri Bergius <[EMAIL PROTECTED]>" __version__ = "0.0.1" __date__ = "2007-03-06" __copyright__ = "Copyright (c) 2007 %s. All rights reserved." % __author__ __licence__ = "LGPL" import sqlite3 import dbus import httplib import os from xml.dom.minidom import parseString # Start with getting position from GeoClue bus = dbus.SessionBus() # TODO: Get the GeoClue interface to use from /schemas/apps/geoclue/ position/defaultpath # and /schemas/apps/geoclue/position/defaultserviceGConf keys proxy_obj = bus.get_object('org.foinse_project.geoclue.position.hostip', '/org/ foinse_project/geoclue/position/hostip') geoclue_iface = dbus.Interface(proxy_obj, 'org.foinse_project.geoclue.position') # Get the coordinates from the service coordinates = geoclue_iface.current_position() # We can also use hardcoded #coordinates[0] = 60.158806494564 #coordinates[1] = 24.9426341056824 print "According to GeoClue you are in %s %s." % (coordinates[0], coordinates[1]) # Make the HTTP request to the Geonames service print "Pulling local Wikipedia pages from Geonames" http_connection = httplib.HTTPConnection("ws.geonames.org") http_connection.request("GET", "/findNearbyWikipedia?lat=%s" % coordinates[0] + "&lng=%s" % coordinates[1] + "&maxRows=100") http_response = http_connection.getresponse() # TODO: Error handling xml = http_response.read() def parse_entries(xml): dom = parseString(xml) entries = dom.getElementsByTagName('entry') results = [] for entry in entries: entry_dictionary = {} entry_dictionary['title'] = entry.getElementsByTagName('title') [0].firstChild.data entry_dictionary['summary'] = entry.getElementsByTagName('summary')[0].firstChild.data + " (source: Wikipedia)" if (entry.getElementsByTagName('feature')[0].firstChild): entry_dictionary['feature'] = entry.getElementsByTagName('feature')[0].firstChild.data entry_dictionary['lat'] = float(entry.getElementsByTagName('lat')[0].firstChild.data) entry_dictionary['lon'] = float(entry.getElementsByTagName('lng')[0].firstChild.data) results.append(entry_dictionary) return results entries = parse_entries(xml) # Open SQLite connection #sqlite_connection = sqlite3.connect(os.path.expanduser("~/ MyDocs/.documents/poi.db")) sqlite_connection = sqlite3.connect(os.path.expanduser("/home/user/ MyDocs/.documents/poi.db")) sqlite_cursor = sqlite_connection.cursor() for entry in entries: # Check if the entry is already in database sql_variables = (entry["title"],) sqlite_cursor.execute('select poi_id from poi where label=?', sql_variables) existing_entry_id = sqlite_cursor.fetchall() if (existing_entry_id): print "%s is already in database, skipping" % entry["title"] # TODO: Update else: print "Inserting %s (%s, %s) into POI database" % (entry["title"], entry["lat"], entry["lon"]) # TODO: Be smarter about POI categories sql_variables = (entry["lat"], entry["lon"], entry["title"], entry["summary"], 10) sqlite_cursor.execute("insert into poi (lat, lon, label, desc, cat_id) values (?, ?, ?, ?, ?)", sql_variables) sqlite_connection.commit() sqlite_cursor.close() sqlite_connection.close() -- http://mail.python.org/mailman/listinfo/python-list