You Are Here:

Community: Blogs

Maximiliano Firtman's Forum Nokia Blog

Localize me... even if I don't have a GPS

firt | 01 December, 2007 20:24

Let's analyze many ways to get the user's geolocation.Uncentainty location in Google Maps

Recently, Google updated its Google Maps Mobile application with a new "My Location" feature that works even without GPS. If you do not have a GPS-enabled phone, you might see a blue dot surrounded by a light blue circle over the map to indicate uncertainty about your location. Let's see how we can do this.

We all know that Location Based Services (LBS) are a great feature to add to many mobile applications. I want information based on my location. I don't want to receive restaurants from other city, I want to see weather, driving directions or traffic data from my geographical zone, I want to geotag my photos, and I want to know what other people think about the place where I am right now. I also want to socialize, play games, and organize meetings with people near me.

So, all we need is a GPS? The first answer seems to be "yes". The GPS is one of the best solutions to find the location of a user. The GPS (Global Position System) gives the developer the coordinates (Latitude and Longitude) of the user with some error (usually less than 100m) using satellites. And the AGPS (Assisted GPS) could be even better. The AGPS (if you have a Nokia N95, just update your firmware to get this feature) is a data-based feature to help the GPS to find faster the possition of the user. With AGPS in Nokia N95 now I can localize myself in less than 10 seconds outside and sometimes I can do it inside a building too.

We can query the (A)GPS from many platforms, like Java ME (Location API), GPS with Symbian C++ or Python and then search for information in our local database or remote server using the Internet connection of the phone. If we need information about the street, neighbourhood or any other data regarding the calculated coordinates we can use some inverse geocoding service: if I have some latitude and longitude, can you give me the street name and address?.

At this time only a few devices have GPS integrated, and less people have a bluetooth GPS connected to the mobile phone.
But, what happen with the millons of non-GPS devices?

 Just look to these other solutions.

Solution 1

You can use the cell information of the phone to georeference the user. When you are connected to a mobile cell network you are in range of one or more towers. The range of the tower is called a cell. Since every cell has it owns range (100m, 500m, 1km for example) we really don't know exactly where the user is, but we know the zone with some error. Sometime this is enough useful to give the user the information. But, how can you use the cell to know latitude and longitude?

    a) In Java ME there isn't any standard solution. You can query the CellID (Identification Number) using System.Properties("phone.cid") on some devices only. For example, this doesn't work in Series 40 devices. It only works in some Motorola or Sony Ericsson's phones.

   b) In Symbian (Signed), you can get the Cell, Area and the Carrier (see this sample). With this combination you have a unique cell number in the world. You "only" need to convert this information in geographical information. How to do this? Here comes the difficult part. There isn't any direct way to make this conversion. You can use a Carrier API (if they have one), you can use some Open Source collection (like CellSpotting.com) or you can make your own one. 

   c) In dev cert Python, you can get this information. Just see this sample

That's what Google is doing with its recently updated Google Maps My Location feature. If you don't have a GPS, you can still find your location using the Cell information. Google can compare your cell number with querys from other users having the same Cell and GPS, for example. So, Google is making its own cell-coordinates database (or buying it).

You can see a video of how Google Mobile Maps works here:

Solution 2

The mobile carriers should bring developers an API to know the coodinates of some user. Using three cells in range, the carrier can calculate where are the user and give the information to the developer through an API. 

Solution 3

Use the IP address to find the location of the user. If the user is connected through WiFi (or 3G in some cases) you can try analize the IP address connected to the Internet. With the IP Address you can query some open database (like MaxMind or GeoIP) and then try to calculate where the user is with some error.

Solution 4

Ask the user! Don't be afraid to ask the user where is he or she! Your application can be smart and reduce the user's typing.

    - If the user knows its position: The user can insert zip code, city name, neighbourhood name, address, street name. Just ask for one quick entry. You can query your database or some webservice.

    - If the user doesn't know its position: The user can insert some information he is seeing, like a phone number found on a shop or some place name (parks, museums, stations).

Solution 5

Allow the user to select its current location from:
    - Home: ask the user where he/she lives when the application is installed and store this information.
    - Favorites places: query the Places database (GPS' devices) or make your own favorite places.
    - History: allow the user to select a recent place where he/she was. Order the list by frequency.

Visit this mobile Location design pattern in Little Springs Wiki.

 

Of course, you can make a mashup with all this solutions to develop some smarter way to get the user location. 

Do you imagine any other way to get the location of a user? I'm waiting for suggestions.

 

RSSComments

Cell-id data base

croozeus | 02/12/2007, 07:28

croozeus

Well I Quite like talking about localizing non-GPS devices. Its tough but we do have the cell-id feature to cope up with it!
Now on large scale basis what we require is a database of cell-id with their locations be it from the operators or from any 3rd party company. Google has thought good idea of querying the other current cellid users.

I have been working on Location Based Services (LBS) in python.First I was working on 2nd edition devices and now on the 3rd edition GPS devices.But cellid still interests me a lot...Of course there are some issues with the 1 cell id conflicting with other. I have been testing the cellid of different places my city.I am soon gonna write an article on the same.

Hope we do have a solution with cellid soon! :-)

Best Regards
croozus

Localization != location

tote_b5 | 04/12/2007, 22:00

tote_b5

Max,

I just wanted to draw your attention to that fact that localization is something entirely different as finding a location. It's about providing a product (e.g. a software) in more languages. :)

Cheers,

Tote

Localization, location, internationalization, and so on

firt | 05/12/2007, 01:56

firt

Hi Tote,

Thanks for the comment!.

You are right, the term localization is often used as internationalization or globalization. But take a look at Wikipedia's definitions: (http://en.wikipedia.org/wiki/Localization)

"Generally, localization is the determination of the locality (location) of an object."

"localization is the adaptation of an object to a locality."

"In telecommunications, localization is a technique for determining the location of a user of a cell phone"

I think I was talking about localization, not only location. Perhaps I don't want to know where am I. Perhaps I want to know where I can find some restaurant, or if I have a friend near me.

Adapting information to the user location (accurately or not) isn't just finding the user's location.

I want my mobile "localized" applications in my language and also adapted to my geographical location.

Any other opinion? ;-)

Regards!

im with tote

Paul Coulton | 06/12/2007, 23:08

Sorry but Im with tote on this one. Localisation is about relevance to a locality whereas your article is talking about location position finding and after that the position is related to a place normally through some form of spatial database.

Re: Localize me... even if I don't have a GPS

Hypotheek Berekenen | 31/05/2008, 22:09

Hmm how come this is the last topic since almost 1 year on location based services. I expected that this area would be booming, so many apps and mash-ups I could think about that can rely on good info of the location of the user...

You must login to post comments. Login
 

Rate This

 
 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditFurlTechnocratiMagnoliaTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZdescriptionQSxIE27mE20aE20mobileE20enthusiastE20thinkingE20inE20mobileE20lifeE2eE20ThereE20isE20stillE20placeE20forE20innovationE20inE20servicesE2cE20gamesE20andE20applicationsE2eE20WhatE20areE20youE20waitingE20forE3fE20E28E45nE20espaEf1olE20todavEedaE20hayE20mEe1sE20oportunidadesE29E20firtE20E7cE2001E20E44ecemberE2cE202007E2020E3a24E20E4cetE27sE20analyzeE20manyE20waysE20toE20getE20theE20userE27sE20geolocationE2eE52ecentlyE2cE20GoogleE20updatedE20itsE20GoogleE20MapsE20MobileE20applicationE20withE20aE20newE20E22MyE20E4cocationE22E20featureE20thatE20worksE20evenE20withoutE20GPSE2eE20IfE20youE20doE20notE20haveE20aE20GPSE2denabledE20phoneE2cE20youE20mightE20seeE20aE20blueE20doE2eE2eE2eX qdcZidentifierQSxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fblogE2fmaE78imilianoE2dfirtmansE2dforumE2dnokiaE2dblogE2f2007E2f12E2f01E2flocalizemeX qdcZpublisherQUxhttpE3aE2fE2fswE2enokiaE2ecomE2fidE2fc764fd1cE2d8b06E2d499aE2d9a6aE2d17c3903d5a65E2fforumE5fnokiaE5fcrawlerE5fagentX qdcZtitleQSxMaE78imilianoE20FirtmanE27sE20ForumE20NokiaE20BlogE20E7cE20E4cocalizeE20meE2eE2eE2eE20evenE20ifE20IE20donE27tE20haveE20aE20GPSX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfnTypeZBlogContentQ qdcZtypeQUqfnTypeZBlogE45ntryQ qdcZtypeQUqfnTypeZCommunityContentQ qdcZtypeQUqfnTypeZE52esourceQ qdcZtypeQUqfnTypeZWebpageQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qrssZdescriptionQSxIE27mE20aE20mobileE20enthusiastE20thinkingE20inE20mobileE20lifeE2eE20ThereE20isE20stillE20placeE20forE20innovationE20inE20servicesE2cE20gamesE20andE20applicationsE2eE20WhatE20areE20youE20waitingE20forE3fE20E28E45nE20espaEf1olE20todavEedaE20hayE20mEe1sE20oportunidadesE29E20firtE20E7cE2001E20E44ecemberE2cE202007E2020E3a24E20E4cetE27sE20analyzeE20manyE20waysE20toE20getE20theE20userE27sE20geolocationE2eE52ecentlyE2cE20GoogleE20updatedE20itsE20GoogleE20MapsE20MobileE20applicationE20withE20aE20newE20E22MyE20E4cocationE22E20featureE20thatE20worksE20evenE20withoutE20GPSE2eE20IfE20youE20doE20notE20haveE20aE20GPSE2denabledE20phoneE2cE20youE20mightE20seeE20aE20blueE20doE2eE2eE2eX qfnZdistributionQUxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fX qfnZtopicQUxhttpE3aE2fE2fswE2enokiaE2ecomE2fFNE2d1E2fBlogTopicE2fgeneralXRqdcZtypeQUqrdfsZE52esourceQRqmarsZrelevanceQNx100X qfnZtopicQUqfnTopicZbusinessE5fopportunitiesE5fservicesQRqdcZtypeQUqrdfsZE52esourceQRqmarsZrelevanceQNx100X qfnZtopicQUqfnTopicZbusinessE5ftechnicalE5fservicesQRqmarsZrelevanceQNx100X qfnZtopicQUqfnTopicZlocationQRqdcZtypeQUqrdfsZE52esourceQRqmarsZrelevanceQNx100X qfnZtypeQUqfnTypeZBlogContentQ qfnZtypeQUqfnTypeZBlogE45ntryQ qfnZtypeQUqfnTypeZCommunityContentQ qfnZtypeQUqfnTypeZE52esourceQ qfnZtypeQUqfnTypeZWebpageQ qfnZupdatedQDx2008E2d05E2d31X qfnZuserE5ftagQSxbusinessE2dopportunitiesE2fservicesX qfnZuserE5ftagQSxbusinessE2ftechnicalE2dservicesX qfnZuserE5ftagQSxlocationE2dbasedE2dservicesX qmarsZdescriptionQSxIE27mE20aE20mobileE20enthusiastE20thinkingE20inE20mobileE20lifeE2eE20ThereE20isE20stillE20placeE20forE20innovationE20inE20servicesE2cE20gamesE20andE20applicationsE2eE20WhatE20areE20youE20waitingE20forE3fE20E28E45nE20espaEf1olE20todavEedaE20hayE20mEe1sE20oportunidadesE29E20firtE20E7cE2001E20E44ecemberE2cE202007E2020E3a24E20E4cetE27sE20analyzeE20manyE20waysE20toE20getE20theE20userE27sE20geolocationE2eE52ecentlyE2cE20GoogleE20updatedE20itsE20GoogleE20MapsE20MobileE20applicationE20withE20aE20newE20E22MyE20E4cocationE22E20featureE20thatE20worksE20evenE20withoutE20GPSE2eE20IfE20youE20doE20notE20haveE20aE20GPSE2denabledE20phoneE2cE20youE20mightE20seeE20aE20blueE20doE2eE2eE2eX qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfnTypeZBlogContentQ qrdfZtypeQUqfnTypeZBlogE45ntryQ qrdfZtypeQUqfnTypeZCommunityContentQ qrdfZtypeQUqfnTypeZE52esourceQ qrdfZtypeQUqfnTypeZWebpageQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ