From the start we have occasionally observed weird wrong locations in different countries or even continents, but there did not seem to be any logic in it. There are many postings on this particular subject and I want to thank you all for drawing our attention to this. We thought we had cracked it once already, but this time it seems to be for real. However, please do report it if you ever happen to see this again.
*****Problem solved, thanks everyone! Only read beyond this point if you are into technical details - but then again, you probably are;-)*****
The problem was first traced to locations that are on the edge of the 3G network - sometimes you would be in 3G and sometimes in 2G. The 3G would always give the correct location, but the 2G would sometimes give the wrong one - not always though and not the same wrong one. This had us baffled for a while, because we could not figure out what was going on.
Then the more technically gifted members of our team had enough and created custom tools for tracking the whole end to end system once again bit by bit. First it seemed that there were no errors to be found: the client sent the correct parameters, all the servers gave the correct responses and the correct data was sent back to the client. And still in the real world we would get these strange locations every now and then.
Then suddenly the answer was staring right at us. The solution was so simple that it is kind of embarrassing. You see, we were clever enough to know that unlike 3G cell IDs (i.e. the identification of that particular radio tower) the 2G cell IDs are not globally unique. That's why we are using some additional parameters for 2G. This was taken into account in all other components except one.
We are caching the co-ordinates so that when a certain cell ID has already been resolved we can use it faster later in that same position Well, it turned out that we were only caching the cell ID for both 2G and 3G - totally skipping the additional parameters for 2G. This would then, for example, place me in Novosibirsk instead of Tampere if some fellow Beta Labs user happened to check the local weather before me after the latest server reboot...
This was something that cannot happen, but once again it did;-) Thanks for helping us to solve this and respect if you managed to read this far. Be seeing you!
Pekka Rissanen
Product Manager, Here and now
P.S. I'm sorry for neglecting this forum after the summer holidays. All the usual excuses like too many projects on my table etc. I'll try to be more active again now that we have some new developments on this department as well - keep watching this space.