<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>Maximiliano Firtman&#039;s Forum Nokia Blog</title> 
<subtitle type="html">&lt;p&gt;I&#039;m a mobile enthusiast thinking in mobile life. There is still place for innovation in services, games and applications. What are you waiting for?&lt;br /&gt;
(En espa&amp;ntilde;ol todav&amp;iacute;a hay m&amp;aacute;s oportunidades)&lt;/p&gt;
</subtitle>
 
<updated>2007-12-01T20:24:29+02:00</updated> 
<id>http://www.lifetype.net,1.2/</id>
<link rel="alternate" type="text/html"  hreflang="en" href="http://blogs.forum.nokia.com/blog/maximiliano-firtmans-forum-nokia-blog" />
 
<rights>Copyright (c) firt</rights>
<generator uri="http://www.lifetype.net/" version="1.2">LifeType at Forum Nokia</generator> 
 
<entry> 
<title>Localize me... even if I don&#039;t have a GPS</title>
<link rel="alternate" type="text/html" href="http://blogs.forum.nokia.com/blog/maximiliano-firtmans-forum-nokia-blog/2007/12/01/localizeme" /> 
<id>tag:blogs.forum.nokia.com,2007-12-01:1105</id>
 
<updated>2007-12-01T20:24:29+02:00</updated> 
<published>2007-12-01T20:24:29+02:00</published> 
<summary type="html"> Let&amp;#39;s analyze many ways to get the user&amp;#39;s geolocation.   Recently, Google updated its  Google Maps Mobile  application with a new
&amp;quot; My Location &amp;quot; feature that works even ...</summary> 
<author> 
 
<name>firt</name> 
<uri>http://blogs.forum.nokia.com/blog/maximiliano-firtmans-forum-nokia-blog</uri> 
</author> 
<dc:subject>
Business Opportunities/Services 
General 
Location Based Services 
</dc:subject> 
<content type="text/html" xml:lang="en" xml:base="http://blogs.forum.nokia.com/blog/maximiliano-firtmans-forum-nokia-blog"> 
&lt;p&gt;Let&amp;#39;s analyze many ways to get the user&amp;#39;s geolocation.&lt;img src=&quot;http://www.google.com/gmm/images/blue_dot_circle.png&quot; border=&quot;0&quot; alt=&quot;Uncentainty location in Google Maps&quot; title=&quot;Uncentainty location in Google Maps&quot; hspace=&quot;10&quot; vspace=&quot;10&quot; width=&quot;38&quot; height=&quot;38&quot; align=&quot;right&quot; /&gt;&lt;/p&gt;&lt;p&gt;Recently, Google updated its &lt;a href=&quot;http://www.google.com/gmm/mylocation.html?hl=en&quot; target=&quot;_blank&quot;&gt;Google Maps Mobile&lt;/a&gt; application with a new
&amp;quot;&lt;strong&gt;My Location&lt;/strong&gt;&amp;quot; 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&amp;#39;s see how we can do this.&lt;br /&gt;
&lt;br /&gt;
We all know that &lt;strong&gt;Location Based Services&lt;/strong&gt; (LBS) are a great feature to
add to many mobile applications. I want information based on my
location. I don&amp;#39;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. &lt;/p&gt;&lt;p&gt;So, &lt;span style=&quot;color: #993300&quot;&gt;&lt;strong&gt;all we need
is a GPS?&lt;/strong&gt; &lt;/span&gt;The first answer seems to be &amp;quot;yes&amp;quot;. The &lt;a href=&quot;http://wiki.forum.nokia.com/index.php/GPS&quot;&gt;GPS&lt;/a&gt; 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 &lt;a href=&quot;http://wiki.forum.nokia.com/index.php/Assisted_GPS_on_N95&quot;&gt;update your firmware&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;We can
query the (A)GPS from many platforms, like Java ME (&lt;a href=&quot;http://wiki.forum.nokia.com/index.php/Location_API&quot;&gt;Location API&lt;/a&gt;),
&lt;a href=&quot;http://wiki.forum.nokia.com/index.php/GPS_API_in_S60_3rd_Edition&quot;&gt;GPS with Symbian C++&lt;/a&gt; or &lt;a href=&quot;http://wiki.forum.nokia.com/index.php/NMEA_%28GPS%29_Location_Viewer&quot;&gt;Python&lt;/a&gt; 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?.&lt;br /&gt;&lt;br /&gt;At this time only a few devices have GPS integrated, and less people have a bluetooth GPS connected to the mobile phone.&lt;br /&gt;&lt;strong&gt;But, what happen with the millons of non-GPS devices?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Just look to these other solutions.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;Solution 1&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;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&amp;#39;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?&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) In Java ME there isn&amp;#39;t any standard solution. You can query the CellID (Identification Number) using System.Properties&lt;span&gt;(&amp;quot;phone.cid&amp;quot;)&lt;/span&gt; on some devices only. For example, this doesn&amp;#39;t work in Series 40 devices. It only works in some Motorola or Sony Ericsson&amp;#39;s phones. &lt;/p&gt;&lt;p&gt; &amp;nbsp;&amp;nbsp;
b) In Symbian (Signed), you can get the &lt;strong&gt;Cell&lt;/strong&gt;, &lt;strong&gt;Area&lt;/strong&gt; and the &lt;strong&gt;Carrier&lt;/strong&gt; (see this &lt;a href=&quot;http://wiki.forum.nokia.com/index.php/Find_Out_Cell_ID_in_3rd_Edition&quot;&gt;sample&lt;/a&gt;).
With this combination you have a unique cell number in the world. You
&amp;quot;only&amp;quot; need to convert this information in geographical information.
How to do this? Here comes the difficult part. There isn&amp;#39;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 &lt;a href=&quot;http://www.cellspotting.com&quot; target=&quot;_blank&quot;&gt;CellSpotting.com&lt;/a&gt;)
or you can make your own one.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; c) In dev cert Python, you can get this information. Just see this &lt;a href=&quot;http://wiki.forum.nokia.com/index.php/How_to_get_info_on_cell_location&quot;&gt;sample&lt;/a&gt;.&amp;nbsp; &lt;/p&gt;&lt;p&gt;That&amp;#39;s what Google is doing with its
recently updated Google Maps&lt;strong&gt; My Location&lt;/strong&gt; feature. If you don&amp;#39;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).&lt;/p&gt;&lt;p&gt;You can see a video of how Google Mobile Maps works here:&lt;/p&gt;&lt;p&gt;&lt;object type=&quot;application/x-shockwave-flash&quot; width=&quot;450&quot; height=&quot;350&quot; data=&quot;http://www.youtube.com/v/v6gqipmbcok&amp;amp;rel=1&quot; id=&quot;ltVideoYouTube&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/v6gqipmbcok&amp;amp;rel=1&quot; /&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot; /&gt;&lt;param name=&quot;allowScriptAcess&quot; value=&quot;sameDomain&quot; /&gt;&lt;param name=&quot;quality&quot; value=&quot;best&quot; /&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#FFFFFF&quot; /&gt;&lt;param name=&quot;FlashVars&quot; value=&quot;playerMode=embedded&quot; /&gt;&lt;/object&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;Solution 2&lt;/span&gt;&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;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.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;Solution 3&lt;/span&gt;&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;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 &lt;a href=&quot;http://www.maxmind.com/app/geoip_country&quot; target=&quot;_blank&quot;&gt;MaxMind&lt;/a&gt; or &lt;a href=&quot;http://software77.net/geoip-software.htm&quot; target=&quot;_blank&quot;&gt;GeoIP&lt;/a&gt;) and then try to calculate where the user is with some error. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;Solution 4&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Ask the user! Don&amp;#39;t be afraid to ask the user where is he or she! &lt;/strong&gt;Your
application can be smart and reduce the user&amp;#39;s typing. &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - 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.&lt;/p&gt;&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - If the user doesn&amp;#39;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).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;Solution 5&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; Allow the user to select its current location from:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;strong&gt;Home:&lt;/strong&gt; ask the user where he/she lives when the application is installed and store this information.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;strong&gt;Favorites places:&lt;/strong&gt; query the Places database (GPS&amp;#39; devices) or make your own favorite places.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;strong&gt;History:&lt;/strong&gt; allow the user to select a recent place where he/she was. Order the list by frequency.&lt;/p&gt;&lt;p&gt;Visit this &lt;a href=&quot;http://patterns.littlespringsdesign.com/wikka.php?wakka=LocationSelection&quot; target=&quot;_blank&quot;&gt;mobile Location design pattern&lt;/a&gt; in Little Springs Wiki.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Of course, you can make a mashup with all this solutions to develop some smarter way to get the user location.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Do you imagine any other way to get the location of a user? I&amp;#39;m waiting for suggestions.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
</content> 
</entry> 
 
</feed>