-
Google cell tower mapping with Python on S60
Posted on July 11th, 2008 CommentsI have had my N95 for some days now. I’ll just say that the device is all I could ask for in a smart phone for, now. iPhone 3G, yeah, lets just say my take on it is clear from my choice of the N95. So the best part of this being the Python for S60 and the location API’s available via Python.
I came across this piece of beauty which uses a hidden Google API for location detection based on cell tower information. Now what better way to start learning Python than getting this piece working on my phone with Python. I’m fed up of writing Hello Worlds to start learning a language. Here is a python version of the poor mans GPS.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
from httplib import HTTP import location latitude = 0 longitude = 0 def doLookup(cellId, lac, host = "www.google.com", port = 80): from string import replace from struct import unpack page = "/glm/mmap" http = HTTP(host, port) result = None errorCode = 0 content_type, body = encode_request(cellId, lac) http.putrequest('POST', page) http.putheader('Content-Type', content_type) http.putheader('Content-Length', str(len(body))) http.endheaders() http.send(body) errcode, errmsg, headers = http.getreply() result = http.file.read() # could need some modification to get the answer: here I just need # to get the 5 first characters if (errcode == 200): (a, b,errorCode, latitude, longitude, c, d, e) = unpack(">hBiiiiih",result) latitude = latitude / 1000000.0 longitude = longitude / 1000000.0 return latitude, longitude def encode_request(cellId, lac): from struct import pack content_type = 'application/binary' body = pack('>hqh2sh13sh5sh3sBiiihiiiiii', 21, 0, 2, 'in', 13, "Nokia N95 8Gb", 5,"1.3.1", 3, "Web", 27, 0, 0, 3, 0, cellId, lac, 0, 0, 0, 0) return content_type, body (mcc, mnc, lac, cellId) = location.gsm_location() (latitude, longitude) = doLookup(cellId, lac, "www.google.com", 80) print latitude print longitude
Download
Beware this does not work from all IP’s, from my wifi connection at home this threw an error while on the GPRS connection this worked well.blog comments powered by Disqus-
marcorivero
-
ashen
-
Nima Zandi
-
ben9732
-
haojian
-
jebu
-
haojian
-
jebu
-
haojian
-
Felipe Pontes
-
Splirus
-
jebu
-
nick
-
jebu
-
nick
-
jebu
-
nick
-
jojo
-
jebu
-
jebu
-
nick
-
jebu
-
Johann Aman
-
jebu
-
jebu
-
Johann Aman
-
SumanthMara
-
Zea
-
suhail
-
ninj4
-
snipe
-
jebu
-
snipe
-
jebu
-
snipe
-
jebu
-
Dario
-
jebu
-
Dario
-
kael
-


