<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>techno.blog(&#34;Dion&#34;) &#187; location</title>
	<atom:link href="http://almaer.com/blog/tag/location/feed" rel="self" type="application/rss+xml" />
	<link>http://almaer.com/blog</link>
	<description>blogging about life, the universe, and everything tech</description>
	<lastBuildDate>Tue, 28 Aug 2012 14:41:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Using the W3C Geolocation API Specification today; Extending WhereAreYou</title>
		<link>http://almaer.com/blog/using-the-w3c-geolocation-api-specification-today-extending-whereareyou</link>
		<comments>http://almaer.com/blog/using-the-w3c-geolocation-api-specification-today-extending-whereareyou#comments</comments>
		<pubDate>Mon, 25 Aug 2008 17:12:22 +0000</pubDate>
		<dc:creator>dion</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Gears]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[location]]></category>
		<category><![CDATA[w3c]]></category>

		<guid isPermaLink="false">http://almaer.com/blog/using-the-w3c-geolocation-api-specification-today-extending-whereareyou</guid>
		<description><![CDATA[Last week I shared the WhereAreYou? application that used the Ajax APIs ClientLocation API to access your location via your IP address.
At the same time, we announced support for the Gears Geolocation API that can calculate your address using a GPS device, WiFi info, cell tower ids, and IP address lookups.
Add to all of that, [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I shared the <a href="http://almaer.com/blog/where-are-you-using-the-new-ajax-clientlocation-api">WhereAreYou?</a> application that used the Ajax APIs <a href="http://code.google.com/apis/ajax/documentation/#ClientLocation">ClientLocation</a> API to access your location via your IP address.</p>
<p>At the same time, we announced support for the <a href="http://code.google.com/apis/gears/api_geolocation.html">Gears Geolocation API</a> that can calculate your address using a GPS device, WiFi info, cell tower ids, and IP address lookups.</p>
<p>Add to all of that, the <a href="http://dev.w3.org/geo/api/spec-source.html">W3C Geolocation API</a> that Andrei Popescu of the Gears team is editing. You will notice that it looks similar to the Gears API, with subtle differences. The ClientLocation API is quite different.</p>
<p>To make life easier, I decided to <a href="http://google-ajax-examples.googlecode.com/svn/trunk/whereareyou/scripts/geometa.js">put together a shim called GeoMeta</a> that give you the W3C Geolocation API, and happens to use the other APIs under the hood.</p>
<p>If you have the Geolocation API native in your browser (no one does yet, future proof!) that will be used. If you have Gears, that API will be used, and finally, with nothing the ClientLocation API will be used behind the scenes.</p>
<p>To you the API will look similar:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options)</span>
navigator.<span style="color: #660066;">geolocation</span>.<span style="color: #660066;">getCurrentPosition</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>position<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #003366; font-weight: bold;">var</span> location <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>position.<span style="color: #660066;">address</span>.<span style="color: #660066;">city</span><span style="color: #339933;">,</span> position.<span style="color: #660066;">address</span>.<span style="color: #660066;">region</span><span style="color: #339933;">,</span> position.<span style="color: #660066;">address</span>.<span style="color: #660066;">country</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">', '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      createMap<span style="color: #009900;">&#40;</span>position.<span style="color: #660066;">latitude</span><span style="color: #339933;">,</span> position.<span style="color: #660066;">longitude</span><span style="color: #339933;">,</span> location<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'cantfindyou'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Crap, I don't know. Good hiding!&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>At least, that is what I would like. Unfortunately, there are a few little differences that leak through.</p>
<ul>
<li>The W3C API only seems to give you a lat / long, so you have to do the geocoding to get address info</li>
<li>The Gears API gives you an additional <code>gearsAddress</code> object attached to the resulting position object. This can contain a lot of information on the resulting area (street address to city to &#8230;) however for certain providers the API returns that as <code>null</code>, the same as the W3C standard</li>
<li>That gearsAddress object has slightly different information from the address data that the ClientLocation API returns.</li>
</ul>
<p>To give you control when you need it, you can ask the <code>navigator.geolocation</code> object what type it is. navigator.geolocation.type will be null if it is native, but &#8216;Gears&#8217; or &#8216;ClientLocation&#8217; if a shim kicks in. You can also check <code>navigator.geolocation.shim</code> to see if it is augmented code.</p>
<p><b>Implementation</b></p>
<p>There is some fun implementation code in there if you poke around. For example, for the ClientLocation API, when you make a call, it will be added to a queue if the Google Loader hasn&#8217;t fully loaded yet, and it will kick off that call when finished. Dealing with dynamically creating &lt;script src&gt; as a loading mechanism sure is fun!</p>
<p>I like the idea of jumping straight to the W3C standard and updating the shim as the APIs change. That way, when browsers catch up, the code will still work using the native APIs and you don&#8217;t have to change a thing.</p>
<p><a href="http://almaer.com/whereareyou/geometa.html"><img src='http://almaer.com/blog/uploads/whereareyou.png' alt='Where are you?' border='0'/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://almaer.com/blog/using-the-w3c-geolocation-api-specification-today-extending-whereareyou/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Where are you? Using the new Ajax ClientLocation API</title>
		<link>http://almaer.com/blog/where-are-you-using-the-new-ajax-clientlocation-api</link>
		<comments>http://almaer.com/blog/where-are-you-using-the-new-ajax-clientlocation-api#comments</comments>
		<pubDate>Fri, 22 Aug 2008 16:44:10 +0000</pubDate>
		<dc:creator>dion</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Gears]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[location]]></category>

		<guid isPermaLink="false">http://almaer.com/blog/where-are-you-using-the-new-ajax-clientlocation-api</guid>
		<description><![CDATA[We just announced two new ways to get location info from a browser client.
The Gears GeoLocation API is very detailed. It is able to use GPS, cell towers, WiFi, and ip addresses to work out the location, and you get an &#8220;accuracy&#8221; parameter to see what was available. As well as getting a position, you [...]]]></description>
			<content:encoded><![CDATA[<p>We just announced <a href="http://google-code-updates.blogspot.com/2008/08/two-new-ways-to-location-enable-your.html">two new ways to get location info from a browser client</a>.</p>
<p>The Gears <a href="http://code.google.com/apis/gears/api_geolocation.html">GeoLocation</a> API is very detailed. It is able to use GPS, cell towers, WiFi, and ip addresses to work out the location, and you get an &#8220;accuracy&#8221; parameter to see what was available. As well as getting a position, you can watch a position so you are updated when a change happens. This is perfect for mobile devices that have Gears installed, and since the community is working on the <a href="http://dev.w3.org/geo/api/spec-source.html">W3C Geolocation spec</a> it should be in many more places soon.</p>
<p>To go with the Gears API, we also have an API that goes along with the AJAX APIs, called <a href="http://code.google.com/apis/ajax/documentation/#ClientLocation">ClientLocation</a>.</p>
<p>This is an ip based geocoder that we have made available, and is very simple.</p>
<p>I put together a trivial example called <a href="http://almaer.com/whereareyou/">Where Are You?</a> that ties together this API with the Maps API:</p>
<p><iframe src="http://almaer.com/whereareyou/index.html" style="border: none;" border="0" width="600" height="400"></iframe></p>
<p>You get access to the data from <code>google.loader.ClientLocation</code>, which is null if it can&#8217;t be calculated.</p>
<p>Here is a bit of JavaScript that ties it together:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">google.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;maps&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;2.x&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
google.<span style="color: #660066;">setOnLoadCallback</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>google.<span style="color: #660066;">loader</span>.<span style="color: #660066;">ClientLocation</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> cl <span style="color: #339933;">=</span> google.<span style="color: #660066;">loader</span>.<span style="color: #660066;">ClientLocation</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> location <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>cl.<span style="color: #660066;">address</span>.<span style="color: #660066;">city</span><span style="color: #339933;">,</span> cl.<span style="color: #660066;">address</span>.<span style="color: #660066;">region</span><span style="color: #339933;">,</span> cl.<span style="color: #660066;">address</span>.<span style="color: #660066;">country</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">', '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        createMap<span style="color: #009900;">&#40;</span>cl.<span style="color: #660066;">latitude</span><span style="color: #339933;">,</span> cl.<span style="color: #660066;">longitude</span><span style="color: #339933;">,</span> location<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
        document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'cantfindyou'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Crap, I don't know. Good hiding!&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> createMap<span style="color: #009900;">&#40;</span>lat<span style="color: #339933;">,</span> lng<span style="color: #339933;">,</span> location<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> mapElement <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;map&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    mapElement.<span style="color: #660066;">style</span>.<span style="color: #660066;">display</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'block'</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> map <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> google.<span style="color: #660066;">maps</span>.<span style="color: #660066;">Map2</span><span style="color: #009900;">&#40;</span>mapElement<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    map.<span style="color: #660066;">addControl</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> GLargeMapControl<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    map.<span style="color: #660066;">addControl</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> GMapTypeControl<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    map.<span style="color: #660066;">setCenter</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> google.<span style="color: #660066;">maps</span>.<span style="color: #660066;">LatLng</span><span style="color: #009900;">&#40;</span>lat<span style="color: #339933;">,</span> lng<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">13</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    map.<span style="color: #660066;">openInfoWindow</span><span style="color: #009900;">&#40;</span>map.<span style="color: #660066;">getCenter</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> document.<span style="color: #660066;">createTextNode</span><span style="color: #009900;">&#40;</span>location<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://almaer.com/blog/where-are-you-using-the-new-ajax-clientlocation-api/feed</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Gears Future APIs: Location API</title>
		<link>http://almaer.com/blog/gears-future-apis-location-api</link>
		<comments>http://almaer.com/blog/gears-future-apis-location-api#comments</comments>
		<pubDate>Fri, 21 Dec 2007 13:01:53 +0000</pubDate>
		<dc:creator>dion</dc:creator>
				<category><![CDATA[Gears]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[location]]></category>

		<guid isPermaLink="false">http://almaer.com/blog/gears-future-apis-location-api</guid>
		<description><![CDATA[I have spoken at a bunch of conferences in Europe this quarter. From the Future of Web Apps, and @mediaAjax in London, to JavaZone and JavaPolis in Oslo and Belgium. When I speak about Gears there, I get a lot of questions about Mobile Gears.
A lot of the features of Gears arguably make even MORE [...]]]></description>
			<content:encoded><![CDATA[<p>I have spoken at a bunch of conferences in Europe this quarter. From the Future of Web Apps, and @mediaAjax in London, to JavaZone and JavaPolis in Oslo and Belgium. When I speak about Gears there, I get a lot of questions about Mobile Gears.</p>
<p>A lot of the features of Gears arguably make even MORE sense on a mobile device. Allowing Web developers to build applications for phones has taken off well thanks to the iPhone. Gears can help out in these high latency devices.</p>
<p>One very handy API to have would be a <a href="http://code.google.com/p/google-gears/wiki/LocationAPI">Location API</a> (although it would be useful in other contexts too):</p>
<blockquote><p>
The purpose of this API is to provide means to fetch the location of a device running a Web browser with Gears. </p>
<p>The Location API is an abstraction for the various LBS APIs that currently exist on mobile platforms (GPS-based, network/cellid-based). The API consists of the Location class, which encapsulates various location attributes (latitude, longitude, etc), and also provides the means to query the platform for a location fix. This API also adds a new event type that is fired every time the location changes. Location implementations can be straightforward mappings to native LBS APIs (e.g the <a href="http://www.forum.nokia.com/document/Cpp_Developers_Library/GUID-96C272CA-2BED-4352-AE7C-E692B193EC06/html/Location_Acquisition_APIIndexPage.html" rel="nofollow">S60 Location Acquisition API</a>) or have a more complex design that combines several location providers (e.g a GPS-based provider and a cell id-based provider) and returns the location from the most accurate provider at any given time.
</p></blockquote>
<p>Here is the API as a code example using it:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// Getting the object</span>
<span style="color: #003366; font-weight: bold;">var</span> location <span style="color: #339933;">=</span> google.<span style="color: #660066;">gears</span>.<span style="color: #660066;">factory</span>.<span style="color: #660066;">create</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;beta.location&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;1.0&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// Setting up a callback to handle &quot;location changed&quot; events</span>
location.<span style="color: #660066;">onlocationstatechanged</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #000066; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">state</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">:</span>
         SetStatusText<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Connecting&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
     <span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">:</span>
         SetStatusText<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Acquiring&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
      <span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">3</span><span style="color: #339933;">:</span>
          SetStatusText<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Location accuracy:&quot;</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">accuracy</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          MoveMap<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">latitude</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">longitude</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
      <span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">5</span><span style="color: #339933;">:</span>
          HandleError<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">error</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
      <span style="color: #003366; font-weight: bold;">default</span><span style="color: #339933;">:</span>
         <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Unknown state!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// Initiate a fix. This leads to the onlocationstatechanged event handler being called exactly once for each</span>
<span style="color: #006600; font-style: italic;">// of the &quot;connecting&quot; and &quot;acquiring&quot; states and one or more times for the &quot;fixed&quot; state (for the initial</span>
<span style="color: #006600; font-style: italic;">// fix and every time the location changes, after that).</span>
location.<span style="color: #660066;">startLocationUpdates</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// async call, initiates fix (powers up GPS if needed, etc)</span>
&nbsp;
...
&nbsp;
<span style="color: #006600; font-style: italic;">// Getting the last known location</span>
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>location.<span style="color: #660066;">latitude</span> <span style="color: #339933;">!=</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">&amp;&amp;</span>
    location.<span style="color: #660066;">timeUTC</span> <span style="color: #339933;">&gt;</span> threshold<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  <span style="color: #006600; font-style: italic;">// the location info is valid and not very old</span>
  Foo<span style="color: #009900;">&#40;</span>location.<span style="color: #660066;">latitude</span><span style="color: #339933;">,</span> location.<span style="color: #660066;">longitude</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// Cancel the request. This leads to the onlocationstatechanged event handler being called for</span>
<span style="color: #006600; font-style: italic;">// the &quot;canceled&quot; state. This call will power down the GPS HW / close HTTP connection</span>
<span style="color: #006600; font-style: italic;">// (depending on the location providers that were in use).</span>
location.<span style="color: #660066;">stopLocationUpdates</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>I can imagine the fun games that I could write here, let alone the interesting business apps that could take the location context into consideration.</p>
<p><b>Other Future APIs</b></p>
<ul>
<li><a href="http://almaer.com/blog/gears-future-apis-desktop-shortcut-api">Desktop Shortcut API</a></li>
<li><a href="http://almaer.com/blog/gears-future-apis-image-manipulation-api">Image Manipulation API</a></li>
<li><a href="http://almaer.com/blog/google-gears-upgrading-from-a-1950s-chevy-in-cuba">Introduction to the series</a></li>
</ul>
<p><em>Disclaimer: This is early days, and who knows what the final API will look like, or if it will even make it. Do you have ideas for cool Gears that make the Web better? <a href="http://groups.google.com/group/google-gears/">Let us know!</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://almaer.com/blog/gears-future-apis-location-api/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
