<?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>Google Data &#187; Pamela Fox</title>
	<atom:link href="/author/pamela-fox/feed/" rel="self" type="application/rss+xml" />
	<link>https://googledata.org</link>
	<description>Everything Google: News, Products, Services, Content, Culture</description>
	<lastBuildDate>Thu, 19 Mar 2015 22:49:02 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.7.5</generator>
	<item>
		<title>Geolocation, Mobile Web Apps, Geo-Autocomplete, Geohashing, and more from GeoMeme</title>
		<link>https://googledata.org/google-maps/geolocation-mobile-web-apps-geo-autocomplete-geohashing-and-more-from-geomeme/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=geolocation-mobile-web-apps-geo-autocomplete-geohashing-and-more-from-geomeme</link>
		<comments>https://googledata.org/google-maps/geolocation-mobile-web-apps-geo-autocomplete-geohashing-and-more-from-geomeme/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 14:47:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[

Guest post by Bob Hitching, Director of Technology for Xumii, recently acquired by Myriad (Myriad Group AG), Europe's largest mobile technology company with software in over 2 billion phones.Bob also writes about mobile + geo + social on his blog and...]]></description>
				<content:encoded><![CDATA[<div>

<p style="font-style: italic;">Guest post by Bob Hitching, Director of Technology for Xumii, recently acquired by Myriad (Myriad Group AG), Europe's largest mobile technology company with software in over 2 billion phones.Bob also writes about mobile + geo + social on his <a href="http://hitching.net/">blog</a> and tweets as <a href="http://www.twitter.com/hitching">@hitching</a>.</p>

<p><a title="GeoMeme" href="http://www.geome.me/" id="ogv-">GeoMeme</a> is a pet project of mine. It's a web app, and also a mobile web app for iPhone and Android, that measures real-time local twitter trends to work out what's happening where.</p>

<p>Visitors to GeoMeme choose a location on the map, and two search terms to compare. GeoMeme then measures and compares the number of matching tweets within the bounds of the map. Tweets are located using Twitter's brand new <a title="geotagging" href="http://blog.twitter.com/2009/11/think-globally-tweet-locally.html" id="s88h">geotagging</a> feature, and public data from a number of mobile twitter apps.</p>

<p>As an example, GeoMeme can work out that <a title=":) beats :( in San Francisco" href="http://www.geome.me/gJjkC" id="z_ea">'love' beats 'hate' in New York</a>:</p>

<div><img src="http://docs.google.com/File?id=dfs3s34c_70hnzc7csg_b" height="299" width="291" />  <img src="http://docs.google.com/File?id=dfs3s34c_71dzx9cxdp_b" style="width: 269px; height: 300px; margin: 10px" /></div>

<p>GeoMeme is packed full of geo goodness, and I am excited to share some details on how it all works in the following articles. I hope these are useful to those of you building your own geo apps.</p>

<h3 style="font-size: 12pt; clear: left; margin-top: 10px;"><a title="Location-aware mobile web apps using Google Maps v3 + geolocation" href="http://hitching.net/2009/11/10/location-aware-mobile-web-apps-using-google-maps-v3-geolocation/" id="x0c-">Location-aware mobile web apps using Google Maps v3 + geolocation</a></h3>

<div><img id="v3uf" src="http://docs.google.com/File?id=dfs3s34c_68f5wq2qdt_b" style="width: 160px; height: 321px; float: left; margin: 10px;" /></div>

<p><a title="Location-aware mobile web apps using Google Maps v3 + geolocation" href="http://hitching.net/2009/11/10/location-aware-mobile-web-apps-using-google-maps-v3-geolocation/">This article</a> explains how location-aware mobile web apps such as GeoMeme Mobile are now becoming a viable alternative to native mobile apps for iPhone &amp;/or Android.</p>

<p>Also covered is how to combine various geolocation techniques to work out where on earth a mobile phone is located, and how to dynamically retrieve content local to the user for display on a mobile map.</p>

<p>Sample code is provided in the form of a 'Here I Am' location-aware mobile web app that combines geolocation techniques, and retrieves local photos from Panoramio for sharing on Twitter or Facebook.</p>

<h3 style="font-size: 12pt; clear: left; margin-top: 10px;"><a title="Fast map re-location using Google Static Maps v2 + geocoder" href="http://hitching.net/2009/11/10/fast-map-re-location-using-google-static-maps-v2-geocoder/" id="ckqq">Fast map re-location using Google Static Maps v2 + geocoder</a></h3>

<div><img src="http://docs.google.com/File?id=dfs3s34c_66d5p69qcc_b" style="width: 337px; height: 264px; float: left; margin: 10px" /></div>

<p>As well as offering users the normal pan and zoom controls to move the map around, GeoMeme also adds an innovative geo-autocomplete control which provides a refreshingly quick way for users to re-position the map anywhere on the planet.</p>

<p><a title="Fast map re-location using Google Static Maps v2 + geocoder" href="http://hitching.net/2009/11/10/fast-map-re-location-using-google-static-maps-v2-geocoder/">This article</a> explains how the geo-autocomplete control uses the geocoder service from Google Maps v3 API to match location names as they are being typed, and then the new Static Maps v2 API to present the results as a menu of map thumbnails to choose from.</p>

<p>Sample code is provided in the form of a jQuery plugin for you to build your own geo-autocomplete controls.</p>

<h3 style="font-size: 12pt; clear: left; margin-top: 10px;"><a title="Scalable, fast, accurate geo apps using Google App Engine + geohash + faultline correction" href="http://hitching.net/2009/11/10/scalable-fast-accurate-geo-apps-using-google-app-engine-geohash-faultline-correction/" id="fpz5">Scalable, fast, accurate geo apps using Google App Engine + geohash + faultline correction</a></h3>

<p>GeoMeme generates a large amount of geo-data, and so arises a need shared by many geo apps: scalable, fast, and accurate spatial queries, to select a subset of geo-data for display as markers on a map.</p>

<div><img id="t6ka" src="http://docs.google.com/File?id=dfs3s34c_693xcv7jcq_b" style="width: 339px; height: 208px; float: left; margin: 10px" /></div>

<p><a title="Scalable, fast, accurate geo apps using Google App Engine + geohash + faultline correction" href="http://hitching.net/2009/11/10/scalable-fast-accurate-geo-apps-using-google-app-engine-geohash-faultline-correction/">This article</a> is all about using Google App Engine to host scalable and fast geo apps, and using an optimised version of the geohash algorithm to perform your spatial queries.</p>

<p>There's a fun demo showing the effect of geohash faultlines, and the relative accuracy of spatial queries with or without faultline correction</p>

<p>Sample code is provided as a python module to handle faultline-friendly geo search, if you want to use this technique on your own geo apps.</p>

<p style="clear: both"></p>
</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-8418512479738778776?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/geolocation-mobile-web-apps-geo-autocomplete-geohashing-and-more-from-geomeme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mapsicle 1.0: Annotating Street View Panoramas</title>
		<link>https://googledata.org/google-maps/mapsicle-1-0-annotating-street-view-panoramas/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mapsicle-1-0-annotating-street-view-panoramas</link>
		<comments>https://googledata.org/google-maps/mapsicle-1-0-annotating-street-view-panoramas/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 06:44:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Hi, I'm John Clegg of ProjectX. We build a range of map applications such as journeyplanners and addressing tools in Wellington, New Zealand. We have been working on a library to add more functionality to Street View called Mapsicle.
Ever since the rel...]]></description>
				<content:encoded><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Hi, I'm John Clegg of ProjectX. We build a range of map applications such as <a href="http://www.journeyplanner.org.nz/" >journeyplanners</a> and <a href="http://www.nzpost.co.nz/Cultures/en-NZ/OnlineTools/PostShopLocator/" >addressing tools</a> in <a href="http://www.zoomin.co.nz/map/nz/wellington/wellington+central/johnston+street/12/-projectx+technology+ltd/" >Wellington, New Zealand</a>. We have been working on a library to add more functionality to Street View called Mapsicle.</p>
<br><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Ever since the release of Google Street View in 2007, we have been thinking about how we could enhance it. It wasn't until Street View arrived in New Zealand in December 2008 that we finally decided to build a prototype called Mapsicle (Maps meets Popsicle).</p>
<br>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">The prototype showed how you could easily overlay content such as markers and InfoWindows onto Street View. We showed Mapsicle to a few people including the Google Maps API team who were excited about what it could do. We asked Google if we could submit Mapsicle into the Maps Util library to ensure that we accelerate the development of Street View as a maps application platform. After a couple of months of testing and bug fixing, we are happy to announce that <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/mapsicle/1.0/">Mapsicle v1.0</a> is now live.</p>
<br/>
</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><span style="font-size:130%;"><b>What can Mapsicle do ?</b></span></p>
<br/>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Using Mapsicle library, you can do a lot of interesting things:</p>
<br/>
</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "></p><div id="ocvs" style="margin-top: 0px; margin-bottom: 0px; text-align: left; "><img src="https://docs.google.com/a/google.com/File?id=dhqdm92z_12d6j43mc6_b" style="height: 216px; width: 500px; " />

</div><ul style="margin-top: 0px; margin-bottom: 0px; "><li style="margin-top: 0px; margin-bottom: 0px; ">Create and show markers at various locations on Street View such as Disneyland Paris</li></ul><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "></p><div id="xi2n" style="margin-top: 0px; margin-bottom: 0px; text-align: left; "><img src="https://docs.google.com/a/google.com/File?id=dhqdm92z_13hp3gkxnc_b" style="height: 316px; width: 500px; " /></div>
<div style="margin-top: 0px; margin-bottom: 0px; "><ul style="margin-top: 0px; margin-bottom: 0px; "><li style="margin-top: 0px; margin-bottom: 0px; ">Show markers that are outside of the field of view such as the NZ flag marker above.</li>
</ul><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "></p><div id="r0f1" style="margin-top: 0px; margin-bottom: 0px; text-align: left; "><img src="https://docs.google.com/a/google.com/File?id=dhqdm92z_14djp2h8fg_b" style="height: 313px; width: 500px; " /></div>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
</p><ul style="margin-top: 0px; margin-bottom: 0px; "><li style="margin-top: 0px; margin-bottom: 0px; ">Create InfoWindows at locations.</li></ul><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "></p>
<br/>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><span style="font-size:130%;"><b>Getting Started</b></span></p>
<br/>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">To try it out yourself, read through the <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/mapsicle/1.0/docs/examples.html">developer's guide</a> and <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/mapsicle/1.0/docs/reference.html">reference</a>, and check out the examples that show how to implement <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/mapsicle/1.0/examples/custom_info_windows.html">custom infowindows</a>, <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/mapsicle/1.0/examples/simple_demo.html">markers</a>, and <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/mapsicle/1.0/examples/map_connect_demo.html">map integration</a>.</p><div style="margin-top: 0px; margin-bottom: 0px; ">
</div><div style="margin-top: 0px; margin-bottom: 0px; ">
</div>
<br/>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><span style="font-size:130%;"><b>The world of possibilities</b></span></p>
<br/>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Now that Street View is being extended via the <a href="http://maps.google.com/help/maps/streetview/partners/" >Street View partner program</a>, Mapsicle could be used to create a whole range of maps applications…</p>
<br/>
<ul style="margin-top: 0px; margin-bottom: 0px; "><li style="margin-top: 0px; margin-bottom: 0px; ">Advanced Store locators: Create store locators that show exactly how to get to your store from the user's current location.</li><li style="margin-top: 0px; margin-bottom: 0px; ">Interactive tours: Combine Street View with content to give tours of the streets of the world.</li><li style="margin-top: 0px; margin-bottom: 0px; ">Digital signage: Create interactive advertising on Street View using video and images.</li><li style="margin-top: 0px; margin-bottom: 0px; ">Interactive kiosk: Build a touch screen information kiosk for visitors.</li><li style="margin-top: 0px; margin-bottom: 0px; ">Games: Build a treasure hunt application or a racing game to drive around <a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=thunderhill+raceway+park&amp;sll=36.586467,-121.752548&amp;sspn=0,359.966955&amp;ie=UTF8&amp;ll=39.538701,-122.333364&amp;spn=0,359.93391&amp;z=15&amp;layer=c&amp;cbll=39.53995,-122.332754&amp;panoid=7uAk3Qti2uPLB8_dlQmucg&amp;cbp=12,179.04782870115156,,0,5.759740259740255" >Thunderhill raceway</a>.</li></ul><div>
</div>
<br>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">As one example of the possibilities, we created a fun little mashup called <a href="http://streettag.net/" >StreetTag</a>.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
</p><p></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><b><span style="font-size:130%;">
</span></b></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><span style="font-size:130%;"><b>Thanks to the team</b></span>
</p>
<br/>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Kudos to the entire team at ProjectX, in particular:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
</p><ul style="margin-top: 0px; margin-bottom: 0px; "><li style="margin-top: 0px; margin-bottom: 0px; ">Stephen Davis, who created and named the Mapsicle prototype.</li><li style="margin-top: 0px; margin-bottom: 0px; ">Cameron Prebble, who has been working on building lots of demos and the front end experience.</li><li style="margin-top: 0px; margin-bottom: 0px; ">Thong Kuah, for managing the project and pushing us to open source.</li><li style="margin-top: 0px; margin-bottom: 0px; ">Raja Bhadhury, who has been helping us test and refine Mapsicle over the last few months.</li></ul>
<br/>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">We've had a lot of fun building Mapsicle and we're really excited to see what cool things geo developers are going to do with it. We'd love your help to build out Mapsicle and add more features. You can contribute to the project by joining the <a href="http://code.google.com/p/gmaps-utility-library-dev/">Google Maps API Utility Library</a>, and you can let us know how you're using the library by posting in the <a href="http://groups.google.com/group/google-maps-utility-library">forum</a>. Enjoy!</p></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-8952305539653025831?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/mapsicle-1-0-annotating-street-view-panoramas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Polys in the Maps API v3: Now with Level of Detail &amp; Holes!</title>
		<link>https://googledata.org/google-maps/polys-in-the-maps-api-v3-now-with-level-of-detail-holes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=polys-in-the-maps-api-v3-now-with-level-of-detail-holes</link>
		<comments>https://googledata.org/google-maps/polys-in-the-maps-api-v3-now-with-level-of-detail-holes/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 01:53:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[We've just added Polylines and Polygons to Maps API v3.  These allow you to draw lines or filled regions on the map, specify stroke and fill styles, and handle events.  They work in all supported browsers.
 
We've also made a few improvements from Poly...]]></description>
				<content:encoded><![CDATA[<p>We've just added Polylines and Polygons to <a href="http://code.google.com/apis/maps/documentation/v3/">Maps API v3</a>.  These allow you to draw lines or filled regions on the map, specify stroke and fill styles, and handle events.  They work in <a href="http://code.google.com/apis/maps/faq.html#browsersupport">all supported browsers</a>.
 
<p>We've also made a few improvements from Polylines and Polygons in <a href="http://code.google.com/apis/maps/documentation/">Maps API v2</a>.
</p>
 
<ol>
<li>You can send in multiple paths for one Polygon, and use that to render holes inside your poly, like in this <a href="http://gmaps-samples-v3.googlecode.com/svn/trunk/poly/pentagon.html">Pentagon example</a>.
 <br>
<a href="http://gmaps-samples-v3.googlecode.com/svn/trunk/poly/pentagon.html">
  <img src="http://gmaps-samples-v3.googlecode.com/svn/trunk/poly/pentagon.png"> 
</a> 
</li>
<li>When you give us a set of vertices, we assign a level of detail to each vertex, showing only the necessary amount of vertices per zoom level. This is how we show complex routes in driving directions on Google Maps, and now you can benefit from that optimization with no extra work. Zoom in on the <a href="http://gmaps-samples-v3.googlecode.com/svn/trunk/poly/poly_snowflake.html">fractal snowflake poly example</a> to see how it looks.
<br/> 
<a href="http://gmaps-samples-v3.googlecode.com/svn/trunk/poly/poly_snowflake.html">
  <img src="http://gmaps-samples-v3.googlecode.com/svn/trunk/poly/poly_snowflake.png"> 
</a> 
</p> 
</ol>

<p>Adding a polyline or polygon to a map is easy, as shown in this snippet from the <a href="http://code.google.com/apis/maps/documentation/v3/overlays.html#Polylines">documentation</a>:</p>
<pre class="code"> 
  var flightPlanCoordinates = [
    new google.maps.LatLng(37.772323, -122.214897),
    new google.maps.LatLng(21.291982, -157.821856),
    new google.maps.LatLng(-18.142599, 178.431),
    new google.maps.LatLng(-27.46758, 153.027892)
  ];
  var flightPath = new google.maps.Polyline({
    path: flightPlanCoordinates,
    strokeColor: "#FF0000",
    strokeOpacity: 1.0,
    strokeWeight: 2
  });
  flightPath.setMap(map);
</pre> 
 
 
<p>We wanted to launch early and get feedback, so there are still some features to come:<br/> 
<ul> 
<li>Support for the <code>'mouseover'</code> event</li> 
<li>Further rendering optimizations</li> 
<li>Built-in editing like in <a href="http://maps.google.com/support/bin/answer.py?hl=en&answer=68480">Google My Maps</a></li> 
</ul> 
<br/> 
 
<p>That said, here's a simple <a href="http://gmaps-samples-v3.googlecode.com/svn/trunk/poly/poly_edit.html">demo of polygon editing</a> to show what you can do.</p>
<br/> 
<a href="http://gmaps-samples-v3.googlecode.com/svn/trunk/poly/poly_edit.html">
  <img src="http://gmaps-samples-v3.googlecode.com/svn/trunk/poly/poly_edit.png"> 
</a> 
</p> 
 
<p>As always, please provide feedback in the <a href="http://groups.google.com/group/google-maps-js-api-v3">Google Maps JS API v3 Group</a>.</p> 
<br/>

<span class="post-author">Posted by Ben Appleton, Maps API team</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-2629467832374567205?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/polys-in-the-maps-api-v3-now-with-level-of-detail-holes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SnapshotControl 1.0: Using the Static Maps API to Snapshot Your Maps</title>
		<link>https://googledata.org/google-maps/snapshotcontrol-1-0-using-the-static-maps-api-to-snapshot-your-maps/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=snapshotcontrol-1-0-using-the-static-maps-api-to-snapshot-your-maps</link>
		<comments>https://googledata.org/google-maps/snapshotcontrol-1-0-using-the-static-maps-api-to-snapshot-your-maps/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 07:30:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[

Hi everyone, my name is Masashi Katsumata. I'm a Maps API expert in Japan. I love playing around with the Maps APIs, and I share everything I learn on my website for Japanese speaking developers. But don't worry, English speakers - I also like to cre...]]></description>
				<content:encoded><![CDATA[<p>
<img style="cursor:pointer; cursor:hand;width: 111px; height: 130px;" src="http://3.bp.blogspot.com/_T1lquhCmKo8/Sq9MvnfnnLI/AAAAAAAACgM/Lu5zSj9fj6U/s400/masashi.jpg" align="right" />
Hi everyone, my name is Masashi Katsumata. I'm a Maps API expert in Japan. I love playing around with the Maps APIs, and I share everything I learn on my <a href="http://googlemaps.googlermania.com">website</a> for Japanese speaking developers. But don't worry, English speakers - I also like to create open-source extensions for the utility library, and share them with you here.
</p>

<p>
Today, I'm annoucing my newest contribution: <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/snapshotcontrol/">SnapshotControl</a>. This control makes it easy to generate an image "snapshot" of your interactive map, using the recently released <a href="http://code.google.com/apis/maps/documentation/staticmaps/">Google Static Maps API v2</a>.
</p>
<p>
<a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/snapshotcontrol/1.0/examples/markerAutoDetect.html">
<img style="cursor:pointer; cursor:hand;width: 400px; height: 242px;" src="http://3.bp.blogspot.com/_T1lquhCmKo8/SrXf5cMaQNI/AAAAAAAACho/bH1RSIJZ0PQ/s400/screenshot_snapshotcontrol.png"/>
</a>
</p>

<p>
The default behavior of the control is to add a button on the map, and that button pops up a snapshot when clicked. However, the control can be hidden and the generated snapshot URLs can be programmatically retrieved, so that the library may be used in a more flexible manner. Check out <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/snapshotcontrol/1.0/examples/optionsWizard.html">this demo</a> to play with different options and see the generated URL.
</p>

<p>
<a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/snapshotcontrol/1.0/examples/optionsWizard.html">
<img style="cursor:pointer; cursor:hand;width: 400px; height: 254px;" src="http://4.bp.blogspot.com/_T1lquhCmKo8/SrXfjDK4O3I/AAAAAAAAChY/VFB5oo-KQK8/s400/screenshot_snapshotoptions.png"/>
</a>
</p>

<p>
This control also knows how to encode polylines, using the <a href="http://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm">Douglas-Peucker algorithm</a>, which means that it can be used on maps with very long paths. For example, the control can create static maps for driving direction routes, as shown in the <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/snapshotcontrol/1.0/examples/directions.html">this demo</a>.
</p>

<p>
<a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/snapshotcontrol/1.0/examples/directions.html">
<img src="http://2.bp.blogspot.com/_T1lquhCmKo8/SrXfOIdiFrI/AAAAAAAAChQ/7Qy8LRX4_78/s400/screenshot_snapshotdirections.png" border="1" />
</a>
</p>

<p>
To learn more about this control, check out the <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/snapshotcontrol/1.0/docs/reference.html">
reference</a> and more <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/snapshotcontrol/1.0/docs/examples.html">examples</a>. Enjoy!
</p>
<br/>
<span class="post-author">Posted by Masashi Katsumata, Community Developer</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-1315036922995579582?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/snapshotcontrol-1-0-using-the-static-maps-api-to-snapshot-your-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Introducing ContextMenuControl 1.0: Give Your Users the Power of Right-Click</title>
		<link>https://googledata.org/google-maps/introducing-contextmenucontrol-1-0-give-your-users-the-power-of-right-click/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=introducing-contextmenucontrol-1-0-give-your-users-the-power-of-right-click</link>
		<comments>https://googledata.org/google-maps/introducing-contextmenucontrol-1-0-give-your-users-the-power-of-right-click/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 03:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[
My name is Wolfgang Pichler. I have been developing with the Google Maps JS API for a few years now, posting in the forums and publishing my various experiments for others to learn from.


When a user right-clicks on Google Maps, a context menu appear...]]></description>
				<content:encoded><![CDATA[<p>
My name is Wolfgang Pichler. I have been developing with the Google Maps JS API for a few years now, posting in the forums and publishing my <a href="http://www.wolfpil.de/">various experiments</a> for others to learn from.
</p>
<p>
When a user right-clicks on <a href="http://maps.google.com">Google Maps</a>, a context menu appears with options like getting directions, zooming in, or finding the address of the center point (reverse geocoding). Since I wanted this helpful feature in my own maps, and the core API does not provide it, I decided to implement a fully open-source version and release it in the utility library: <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/contextmenucontrol/">ContextMenuControl</a>. 
</p>
<p>
This control includes all the same items as the native Google Maps control, but I've implemented the directions functionality in a different way. Instead of requiring the developer to provide a panel and inserting the directions steps there, I create infowindows that the user can step through. Now, any developer can use this control and not worry about having to allocate space on their page for the directions steps. The directions functionality also includes the ability to add, remove, and drag points, so that the user can easily customize their query.
</p>
<p>
The result is a control that's easy for users and easy for developers, and is probably the fastest way to add reverse geocoding and directions functionality to your map (especially if it's a small map). Just include the script tag for the source code, insert this line in your map init function, and you'll get a right-click menu like the screenshot shows below:
</p>

<pre class="code">
  map.addControl(new ContextMenuControl());
</pre>
<p>
<a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/contextmenucontrol/1.0/examples/simple.html"><img style="cursor:pointer; cursor:hand;width: 400px; height: 268px;" src="http://3.bp.blogspot.com/_T1lquhCmKo8/SqnZIBHPWbI/AAAAAAAACfc/81OqnXX4UOU/s400/screenshot_contextmenucontrol.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5380069961631750578" /></a>
</p>

<p>
For more information, read through the <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/contextmenucontrol/1.0/docs/reference.html">reference</a> and <a href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/contextmenucontrol/1.0/docs/examples.html">developer's guide</a>. For other open-source extensions that can enhance your mashup, check out the <a href="http://gmaps-utility-library-dev.googlecode.com/">utility library</a>. Enjoy giving your users the power of right-click!
</p>
<br/>
<span class="post-author">Posted by Wolfgang Pichler, Community Developer</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-8853730960087313497?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/introducing-contextmenucontrol-1-0-give-your-users-the-power-of-right-click/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Our Favorites: Time-Based Maps</title>
		<link>https://googledata.org/google-maps/our-favorites-time-based-maps/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=our-favorites-time-based-maps</link>
		<comments>https://googledata.org/google-maps/our-favorites-time-based-maps/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 14:30:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[

Obviously, we love when we see developers using the Maps API to create sophisticated and innovative applications. It makes us feel good that we put time into creating our APIs, and it excites us that there are so many creative developers in the world...]]></description>
				<content:encoded><![CDATA[<p>
<img style="cursor:pointer; cursor:hand;width: 120px; height: 160px;" src="http://3.bp.blogspot.com/_T1lquhCmKo8/Sp3igU7a8JI/AAAAAAAACa8/yqgj9K8uGsQ/s400/Pamela_Fox.jpg" align="right">
Obviously, we love when we see developers using the Maps API to create sophisticated and innovative applications. It makes us feel good that we put time into creating our APIs, and it excites us that there are so many creative developers in the world. But, we don't always wear our heart on our sleeve, and share our love for great uses of the APIs with everyone. So, we're initiating a series of blog posts about our favorite maps, and this is the first in the lot. We'll also use this series as a way to introduce you to other members of our ever expanding team here. You likely already know me, as I'm something of a regular on this blog - getting started 3 years ago with <a href="http://googlemapsapi.blogspot.com/2007/01/gpolygon-example.html">a post</a> showing how to use the then-just-introduced GPolygon (man, that makes me feel old). So, I'll go straight into my favorites.</p>

<p>I was once asked what I thought the next frontier in maps mashups was, and I responded: "time". Why? It's tricky figuring out how to display layers of data on top of a map, but it's even trickier to squeeze in one more dimension and display time-based data, and I admire those developers that take on the challenge. Here are some examples:</p>
<br/>
<table>
<tr>
<td>
<img style="cursor:pointer; cursor:hand;width: 160px; height: 128px;" src="http://1.bp.blogspot.com/_T1lquhCmKo8/Sp3gn7iyvQI/AAAAAAAACaM/duisdDeBiSk/s400/screenshot_nychomicides.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5376700506753383682" />
</td>
<td>
<a href="http://projects.nytimes.com/crime/homicides/map">NYC Homicides Map</a> 
<br>
Displays 10 years of homicide data in New York City, including as recent as the last 2 weeks (eerie!). They give users a slider to quickly slide through the years and see how the density changes, and also give them different options for coloring the data. It's a great, simple combination of two different ways of visualizing data.
</td>
</tr>
<tr>
<td>
<img style="cursor:pointer; cursor:hand;width: 160px; height: 128px;" src="http://2.bp.blogspot.com/_T1lquhCmKo8/Sp3g2zVHbZI/AAAAAAAACac/WWCy6hd1Nkw/s400/screenshot_roztracker.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5376700762246573458" />
</td>
<td>
<a href="http://rozsavage.com/adventure/roztracker/">RozTracker</a>
<br>
Shows the voyage of a woman that's in the middle of rowing across the Pacific. The user can see how many oar strokes she's done, and zoom in to see her tweets, blog posts, and videos from the voyage so far. 
</td>
</tr>
<tr>
<td>
<img style="cursor:pointer; cursor:hand;width: 160px; height: 128px;" src="http://2.bp.blogspot.com/_T1lquhCmKo8/Sp3hGEhidZI/AAAAAAAACas/5qTbZ3SQRMw/s400/screenshot_wwtimeline.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5376701024560117138" />
</td>
<td>
<a href="http://www.cannonade.net/timemap.php">WW2 TimeMap</a>
<br>
Displays WW2 events using TimeMap, the open-source project combining the SIMILE Timeline with the Google Maps API. It's a rich timeline that's able to show long-running events as well as single-time events, and deals with overlapping events. It means that the developer can open the map up to user contributions, and not worry about the usability of the interface being compromised.
</td>
</tr>
<tr>
<td>
<img style="cursor:pointer; cursor:hand;width: 160px; height: 128px;" src="http://4.bp.blogspot.com/_T1lquhCmKo8/Sp3gvKCUdhI/AAAAAAAACaU/NmWPB4LEGd4/s400/screenshot_manhattan.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5376700630902797842" />
</td>
<td>
<a href="http://themannahattaproject.org/explore/mannahatta-map/">Manhattan Map</a> 
<br>
Shows what Manhattan looked like hundreds of years ago (a whole lot greener), and gives the user a slider to change the transparency of the 1609 imagery, giving the illusion of the modern-day landscape fading in. The user can also hover over individual city blocks for information on what that block was like back then.
</td>
</tr>
<tr>
<td>
<img style="cursor:pointer; cursor:hand;width: 160px; height: 128px;" src="http://4.bp.blogspot.com/_T1lquhCmKo8/Sp8hPz3nU2I/AAAAAAAACbY/B1kz26xe3hI/s400/screenshot_timespace.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5377053035608888162" />
</td>
<td>
<a href="http://specials.washingtonpost.com/timespace/world/">TimeSpace</a>
<br>
Clusters the top news stories on the map, and gives the user a time slider to pan through the day's events. The graph underlaid beneath the slider shows how the news density varies during the day, and a search box lets the user filter the news displayed. It's a much more fun way to browse the news, and a good way to encourage readers to be interested in news all over the world.
</td>
</tr>
</table>
<p>
As you can see, there are a lot of ways to show time-based data on maps, and each of them suit different needs. The important thing is that developers are pushing the envelope and experimenting with different interfaces, and putting it out there for all of us to enjoy. For more examples like these, check out the <a href="http://googlemapsmania.blogspot.com/search/label/Timeline">"Timeline"</a> label in the <a href="http://googlemapsmania.blogspot.com/">Google Maps Mania</a> directory. Tune in next week to hear about more of our favorites! :)
</p>

<span class="post-author">Posted by Pamela Fox, Developer Relations</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-1020451098948489254?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/our-favorites-time-based-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>New Articles: Powering Maps API v3 Apps with MySQL</title>
		<link>https://googledata.org/google-maps/new-articles-powering-maps-api-v3-apps-with-mysql/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-articles-powering-maps-api-v3-apps-with-mysql</link>
		<comments>https://googledata.org/google-maps/new-articles-powering-maps-api-v3-apps-with-mysql/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 03:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[ The Google Maps API v3, our new lightweight version of the JavaScript API, has been out for a few months now, and we want to help developers use this API with server-side scripting and databases. So, we've added an articles section to the documentatio...]]></description>
				<content:encoded><![CDATA[<p><img src="http://gmaps-samples-v3.googlecode.com/svn/trunk/articles/phpsqlsearch/phpsqlsearch_map.png" width="160" height="171" align="right"> The <a href="http://code.google.com/apis/maps/documentation/v3">Google Maps API v3</a>, our new lightweight version of the JavaScript API, has been out for a few months now, and we want to help developers use this API with server-side scripting and databases. So, we've added an <a href="http://code.google.com/apis/maps/documentation/v3/articles.html">articles section</a> to the documentation with three new articles:</p>

<ul>
<li><a href="http://code.google.com/apis/maps/articles/phpsqlsearch_v3.html">"Creating a Mobile Store Locator"</a> shows how to query a database for stores near a user's location, and how to present that in a nice mobile-friendly webpage.</li>
<li><a href="http://code.google.com/apis/maps/articles/phpsqlajax_v3.html">"Using PHP/MySQL with Google Maps"</a> shows how to pull data from a SQL database as XML and display that on the map.</li>
<li><a href="http://code.google.com/apis/maps/articles/phpsqlinfo_v3.html">"From InfoWindows to a Database: Saving User-Added Form Data"</a> shows you how to enable users to add geo-tagged information to a database via your map application.</li>
</ul>

<p>
We've also added links to articles from developer <a href="http://www.svennerberg.com/">Gabriel Svennerberg</a>, who has started a series on Maps API v3 and is in the process of writing <a href="http://www.svennerberg.com/2009/07/im-writing-a-book-about-google-maps/">a book</a>. 
</p>
<p>
If you have written an article about using any of our APIs, please let us know using <a href="https://spreadsheets.google.com/viewform?formkey=ckJxcTRsdHBBSEhyVzA3dFh3OVNvZnc6MA..">this form</a>. We love to see developers adding knowledge to the community.
</p>

<span class="post-author">Posted by Pamela Fox, Maps API Team</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-5659787412137234977?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/new-articles-powering-maps-api-v3-apps-with-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Library Creates JavaScript Bridge to Google Maps API for Flash</title>
		<link>https://googledata.org/google-maps/new-library-creates-javascript-bridge-to-google-maps-api-for-flash/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-library-creates-javascript-bridge-to-google-maps-api-for-flash</link>
		<comments>https://googledata.org/google-maps/new-library-creates-javascript-bridge-to-google-maps-api-for-flash/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 14:20:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Hi,I am Nianwei Liu, a web developer located in Charlotte, North Carolina that enjoy workings with various flavors of theGoogle Maps APIs.
 
A few weeks ago, Google announced  3D/perspective capability in the Flash API. If you would like to try out thi...]]></description>
				<content:encoded><![CDATA[<p>Hi,I am Nianwei Liu, a web developer located in Charlotte, North Carolina that enjoy workings with various flavors of theGoogle Maps APIs.
</p> 
<p>A few weeks ago, Google announced <a href="http://googlegeodevelopers.blogspot.com/2009/07/3d-perspective-in-maps-api-for-flash.html"> 3D/perspective</a> capability in the Flash API. If you would like to try out this functionality, but you're not ready to fully commit to AS3 yet, you may find this open source library helpful: <a href="http://mapbridge.googlecode.com">Map Bridge</a>.
</p> 
<p>The concept is very simple: programing a flash component with JavaScript, similar to what you do with <a href="http://code.google.com/apis/maps/documentation/reference.html#GStreetviewPanorama">GStreetViewPanorama</a>. This library exposes all core classes in the Flash API and packages them in an easy to use way. You can write a simple <code>Map3D</code> application like this:</p> 
    <pre style="color:#007000;background-color:#FAFAFA;border:1px solid #BBBBBB;"> 
var map;
function init() {
  MapBridge.createMap(document.getElementById('map_canvas'), function(mp, brg) {
    map = mp;
    map.addEventListener('mapevent_mappreinitialize', onMapPreinitialize);
    map.addEventListener('mapevent_mapready', onMapReady);
  });
}
            
function onMapPreinitialize(e) {
  var myMapOptions = new MapOptions({
    zoom: 12,
    center: new LatLng(40.756054, -73.986951),
    mapType: MapType.NORMAL_MAP_TYPE(),
    viewMode: View.VIEWMODE_PERSPECTIVE(),
    attitude: new Attitude(20, 30, 0)
  });
  map.setInitOptions(myMapOptions);
}
            
function onMapReady(e) {
  map.enableContinuousZoom();
  map.enableScrollWheelZoom();
  map.addControl(new NavigationControl());
  map.addControl(new MapTypeControl());
}
       </pre> 
    <p> 
       Here is an example that uses Map3D and driving directions for a fly-over. </p> 

        <iframe width="620" height="600" frameborder="0" style="border:none" src="http://mapbridge.googlecode.com/svn/trunk/examples/DirectionsFlyToNoText.html"></iframe> 
   <p>For more information, check out <a href="http://mapbridge.googlecode.com/svn/trunk/docs/example.html">more examples</a>, <a href="http://mapbridge.googlecode.com/svn/trunk/docs/howto.html">how-to</a>, and <a href="http://mapbridge.googlecode.com/svn/trunk/docs/reference.html"> reference</a>.</p> 


<span class="post-author">Posted by Nianwei Liu, Community Developer</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-8488213614385706546?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/new-library-creates-javascript-bridge-to-google-maps-api-for-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Static Maps API v2: Encoded Paths, Polygons &amp; Geocoding</title>
		<link>https://googledata.org/google-maps/static-maps-api-v2-encoded-paths-polygons-geocoding/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=static-maps-api-v2-encoded-paths-polygons-geocoding</link>
		<comments>https://googledata.org/google-maps/static-maps-api-v2-encoded-paths-polygons-geocoding/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 02:15:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Two years ago, we announced the Static Maps API. This API allowed developers to generate images that represented maps with markers and paths, and to embed those images in webpages. Developers embraced this API as a way to put lightweight thumbnails on ...]]></description>
				<content:encoded><![CDATA[<p>Two years ago, we announced the Static Maps API. This API allowed developers to generate images that represented maps with markers and paths, and to embed those images in webpages. Developers embraced this API as a way to put lightweight thumbnails on their site (like <a href="http://www.glotter.com/">Glotter</a>) and as a way to create non-Javascript versions of their websites (like <a href="http://google-code-updates.blogspot.com/2009/05/using-google-static-maps-api-and-http.html">LonelyPlanet</a> and <a href="http://googlemapsapi.blogspot.com/2008/03/orbitz-mobile-traffic-maps-static-maps.html">Orbitz</a>), and they clamored for more features to extend the functionality of their sites.</p>

<p>Now, in order to support the top requested features and to make it easy to fulfill future requests, we've rewritten the API and are launching the new interface as <a href="http://code.google.com/apis/maps/documentation/staticmaps/">Static Maps API v2</a>. The main new features are: </p>
<ul>
<li>Paths can be specified as encoded polylines.  <a href="http://code.google.com/p/gmaps-api-issues/issues/detail?id=205">(Issue 205)</a>
<li>Paths can be filled and rendered as polygons.  <a href="http://code.google.com/p/gmaps-api-issues/issues/detail?id=792">(Issue 792)</a>
<li>Locations (in center, markers, or path parameters) can now be 
specified as addresses instead of latitude/longitude coordinates. 
<li>Colors can now be specified as any 24-bit or 32-bit color. 
</ul>
<p>
To show off the new stuff (and my recent vacation in Japan), I've developed a <a href="http://gmaps-samples.googlecode.com/svn/trunk/staticmaps/kyototreasures.html">Secret Treasures of Kyoto"</a> mobile-friendly website. You can use it to visit a park where monkeys roam free in Arashiyama (using a filled path), to walk from our hotel to a restaurant with the most delicious deep fried roast beef sandwiches (using a path), or to stalk a creepy looking soft-shelled turtle (using a turtle-colored marker). Check out the iframed website below, or in your <a href="http://gmaps-samples.googlecode.com/svn/trunk/staticmaps/kyototreasures.html">mobile browser</a>:
</p>
<br>
<iframe src="http://gmaps-samples.googlecode.com/svn/trunk/staticmaps/kyototreasures.html" width="500" height="270"></iframe>
<p>
All of the old features are supported in the new API but some of the URL parameters have changed, so if you're a developer that's already using the old API, please refer to the <a href="http://code.google.com/apis/maps/documentation/staticmaps/upgrade.html">upgrade guide</a>. (That also means that Static Maps v1 is being <a href="http://code.google.com/apis/maps/terms.html#section_4_4">deprecated</a> - but don't worry, there's plenty of time to upgrade).
</p>
<p>
If you're a developer that wants to take advantage of the new features, read through our <a href="http://code.google.com/apis/maps/documentation/staticmaps/index.html">developer guide</a>. To play around with everything right now, try the new <a href="http://gmaps-samples.googlecode.com/svn/trunk/simplewizard/makestaticmap.html">Static Maps v2 Wizard</a>.</p>

<br>
<span class="post-author">Posted by Pamela Fox, Maps API Team</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-6906635497926862020?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/static-maps-api-v2-encoded-paths-polygons-geocoding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GradientControl: Making Thematic Mapping Easier, One Gradient at a Time</title>
		<link>https://googledata.org/google-maps/gradientcontrol-making-thematic-mapping-easier-one-gradient-at-a-time/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gradientcontrol-making-thematic-mapping-easier-one-gradient-at-a-time</link>
		<comments>https://googledata.org/google-maps/gradientcontrol-making-thematic-mapping-easier-one-gradient-at-a-time/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 13:38:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[
I'm Simon, and I work as a Site Reliability Engineer at Google. One of the benefits of working here is that I get to choose interesting 20% projects to work on. Recently, I worked with Project Vulcan at Purdue University to create a map that visualize...]]></description>
				<content:encoded><![CDATA[<p>
I'm Simon, and I work as a Site Reliability Engineer at Google. One of the benefits of working here is that I get to choose interesting 20% projects to work on. Recently, I worked with <a href="http://www.purdue.edu/eas/carbon/vulcan/GEarth/index.html">Project Vulcan</a> at Purdue University to create a map that visualized greenhouse gas emissions. I chose to visualize that data by coloring countries depending on the values associated with them. This technique is called <a href="http://en.wikipedia.org/wiki/Choropleth_map">chloropleths</a>, or <a href="http://en.wikipedia.org/wiki/Thematic_map">thematic maps</a>.
</p>
<p>
Google APIs made most of the map creation tasks quite easy, but fine-tuning thematic maps still required a lot of work. I wanted to load a dataset and make a single library call to calculate the color gradients, but at the same time I wanted to be able to express complex rules, like "draw all negative values with a red-yellow gradient, then draw the bottom 50% of the positive values with a yellow-orange gradient, and the rest with a orange-red gradient".
</p>
<p>
Developer Bjørn Sandvik created the great <a href="http://thematicmapping.org/">Thematic Mapping</a> library using the Google Earth API and Google Visualization APIs in JavaScript, but while it supports a large number of thematic map types, it can only draw a gradient between two colors. So, to satisfy my needs for multi-colored gradients and more control, I wrote a library for the Maps API for Flash called <a href="http://gmaps-utility-library-flash.googlecode.com/svn/trunk/docs/com/google/maps/extras/gradients/GradientControl.html">GradientControl</a>. 
</p>
<p>
Here's a <a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/GradientControlSmallExample/GradientControlSmallExample.html">simple example</a> of using GradientControl, with just a three-color gradient, from green to yellow to red:
</p>
<iframe src="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/GradientControlSmallExample/GradientControlSmallExample.html" width="550" height="490" frameborder="0"></iframe>
<p>
You can drag the slider under the map to change the position of the middle color and immediately see the results. Click on a country to see the value associated with it. You can also try out <a href="http://gmaps-utility-library-flash.googlecode.com/svn/trunk/examples/GradientControl/bin-release/GradientControlDemo.html">a larger version of this example</a>, with two middle colors and three sliders.
</p>
<p>
The color gradient configuration can be either constructed with Actionscript function calls, or moved into an external XML file. The complex example that I wanted to write would look like this:
</p>
<pre>
&lt;gradientRuleList&gt; 
  &lt;gradientRule&gt; 
    &lt;gradient&gt; 
      &lt;minColor&gt;0x0000ff&lt;/maxColor&gt; 
      &lt;maxValue&gt;0&lt;/minValue&gt; 
    &lt;/gradient&gt; 
   &lt;/gradientRule&gt; 
   &lt;gradientRule&gt; 
     &lt;gradientRuleList&gt; 
       &lt;gradientRule&gt; 
         &lt;gradient&gt; 
           &lt;minColor&gt;0xff0000&lt;/minColor&gt;     
           &lt;maxColor&gt;0xff8000&lt;/maxColor&gt; 
           &lt;maxPercent&gt;50&lt;/maxPercent&gt; 
         &lt;/gradient&gt; 
       &lt;/gradientRule&gt; 
       &lt;gradientRule&gt; 
         &lt;gradient&gt; 
           &lt;minColor&gt;0xffff00&lt;/minColor&gt;
           &lt;maxColor&gt;0x00ff00&lt;/maxColor&gt; 
         &lt;/gradient&gt; 
      &lt;/gradientRule&gt; 
    &lt;/gradientRuleList&gt; 
  &lt;/gradientRule&gt; 
 &lt;/gradientRuleList&gt;
</pre>

<p>
This is verbose, of course, but still much easier than writing custom code.
</p>
<p>
To get started using the library, check out <a href="http://code.google.com/p/gmaps-utility-library-flash/source/checkout">the source</a>, read the <a href="http://gmaps-utility-library-flash.googlecode.com/svn/trunk/examples/GradientControl/bin-release/index.html">documentation</a>, and post in <a href="http://groups.google.com/group/google-maps-api-for-flash">the forum</a> if you're having issues (or simply to show off what you've made). If you're interested in improving this control or making it work better with existing standards or APIs, please join <a href="http://groups.google.com/group/google-maps-api-for-flash-utility-library-group">the utility library forum</a>. Enjoy!
</p>
<br>
<span class="post-author">Posted by Simon Ilyushchenko, Google Engineer</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-1617904909076152096?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/gradientcontrol-making-thematic-mapping-easier-one-gradient-at-a-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MarkerClusterer in an all new flavor &#8211; ActionScript!</title>
		<link>https://googledata.org/google-maps/markerclusterer-in-an-all-new-flavor-actionscript/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=markerclusterer-in-an-all-new-flavor-actionscript</link>
		<comments>https://googledata.org/google-maps/markerclusterer-in-an-all-new-flavor-actionscript/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 03:46:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[
My name is XIAO Juguang - just call me Juguang. I am a freelance software developer based in Beijing, China.  Technically speaking, I'm double sided. On one side, I specialize in knowledge management and business modeling, traditionally using LAMP and...]]></description>
				<content:encoded><![CDATA[<img style="cursor:pointer; cursor:hand;width: 60px; height: 75px; margin:5px;" src="http://2.bp.blogspot.com/_T1lquhCmKo8/Sm7YOpSzerI/AAAAAAAACRo/MJ1ta-OSs2s/s400/dgq749q5_124gfhbdkc2_b.jpg" align="left"/>
<p>My name is XIAO Juguang - just call me Juguang. I am a freelance software developer based in Beijing, China.  Technically speaking, I'm double sided. On one side, I specialize in knowledge management and business modeling, traditionally using LAMP and now experimenting with offerings like Google App Engine. On the other side, I love visualization in time and space, with charts, trees, graphs, and maps, always using the power of ActionScript/Flex, with the help of open-source projects like Degrafa, Axiis, and Birdeye, and of course, APIs like the Google Maps API for Flash.
</p>
<p>
A few month ago, Xiaoxi Wu (also from China!) created the MarkerClusterer library for the Google Maps JavaScript API v2 and <a href="http://googlegeodevelopers.blogspot.com/2009/04/markerclusterer-solution-to-too-many.html">released it</a> in their open source utility library. This library did automatic clustering of markers placed on a map, so that a large amount of markers wouldn't overcrowd the map or overwhelm the user. This is a great technique for having a better performing map (see <a href="http://code.google.com/events/io/sessions/PerformanceTipsGeoApiMashups.html">this talk</a> for more tips on improving map performance), and the Flash map community immediately rushed to port the code to ActionScript. Developer Sean Toru <a href="http://groups.google.com/group/google-maps-api-for-flash/browse_frm/thread/8d6a40a17ddc7239/cb562796bf616537">posted the first port</a>, a version that was only Flash-compatible, Ian Watkins <a href="http://groups.google.com/group/google-maps-api-for-flash/msg/70b935d47654c2a2">modified that port</a> to use Flex packages, and then I refactored the code to be more ActionScript-friendly and released it into the open-source library. It's great when random strangers can collaborate together on a common code goal. :)
</p>
<br>
<a href="http://gmaps-utility-library-flash.googlecode.com/svn/trunk/examples/MarkerClustererDemo/bin-release/MarkerClustererDemo.html">
<img style="cursor:pointer; cursor:hand;width: 400px; height: 215px;" src="http://1.bp.blogspot.com/_T1lquhCmKo8/Sm7Zq5X9r-I/AAAAAAAACRw/u_U_ImOZkAw/s400/dgq749q5_125hf239pcd_b.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363463537223905250" />
</a>

<p>
To see how the AS3 MarkerClusterer works, try out <a href="http://gmaps-utility-library-flash.googlecode.com/svn/trunk/examples/MarkerClustererDemo/bin-release/MarkerClustererDemo.html">the demo</a> (shown above). As you zoom and pan the map, you can witness how the markers are clustered and re-clustered. To learn how to use MarkerClusterer on your own map, view <a href="http://gmaps-utility-library-flash.googlecode.com/svn/trunk/examples/MarkerClustererDemo/src/">the source code</a> of the demo. To use the library, <a href="http://code.google.com/p/gmaps-utility-library-flash/source/checkout">check out the source code</a> and import it into your project.
</p>
<p> 
The current algorithm is quite simple, just clustering markers in a grid and using static images for the cluster markers. Future extensions could include support for regional clustering or using arbitrary DisplayObjects for the cluster markers. If you're interested in extending the library, <a href="http://code.google.com/p/gmaps-utility-library-flash/wiki/FrequentlyAskedQuestions">join the project</a>.
</p>
<br/>

<span class="post-author">Posted by XIAO Juguang, Community Developer</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-8170074743155998662?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/markerclusterer-in-an-all-new-flavor-actionscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Google I/O 2009: Geo Round-Up</title>
		<link>https://googledata.org/google-maps/google-io-2009-geo-round-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-io-2009-geo-round-up</link>
		<comments>https://googledata.org/google-maps/google-io-2009-geo-round-up/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 04:28:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[
At Google I/O 2009, we had the opportunity to meet many of our favorite developers in the Sandbox and Office Hours, and deliver several advanced talks on geo topics. Check out the description of those sessions below (originally posted on the Google Co...]]></description>
				<content:encoded><![CDATA[<p>
At Google I/O 2009, we had the opportunity to meet many of our favorite developers in the Sandbox and Office Hours, and deliver several advanced talks on geo topics. Check out the description of those sessions below (originally posted on the <a href="http://google-code-updates.blogspot.com/2009/06/google-io-session-videos-on-building.html">Google Code</a> blog), or jump straight to the embedded player and watch them yourself.
</p>
<p>
Mano Marks and Pamela Fox started with a <a id="u5wr" href="http://code.google.com/events/io/sessions/DontKnowGeoApiCantHurt.html" title="grab bag session">grab bag session</a> covering the vast spectrum of Geo APIs, discussing touring and HTML 5 in KML, the <a id="pap1" href="http://code.google.com/apis/sketchup/" title="Sketchup Ruby API">Sketchup Ruby API</a> (with an awesome physics demo), driving directions (did you know you can solve the Traveling Salesman Problem in Javascript?), desktop AIR applications, reverse geocoding, user location, and monetization using the <a id="vv8d" href="http://googlegeodevelopers.blogspot.com/2009/05/earn-revenue-from-your-mashup-with-maps_20.html" title="Maps Ad Unit">Maps Ad Unit</a> and <a id="e3_n" href="http://googlegeodevelopers.blogspot.com/2009/03/changes-to-googlebar.html" title="GoogleBar">GoogleBar</a>. Pamela finished by sneak previewing an upcoming feature in the Flash API: 3d perspective view.

<p>In the session on <a id="o.6s" href="http://code.google.com/events/io/sessions/PerformanceTipsGeoApiMashups.html" title="performance tips for Maps API mashups">performance tips for Maps API mashups</a>, Marcelo Camelo announced <a id="ym46" href="http://code.google.com/apis/maps/documentation/v3" title="Google Maps API v3">Google Maps API v3</a>, a latency-oriented rewrite of our popular JS Maps API.  Also see Susannah Raub's <a id="l875" href="http://code.google.com/events/io/sessions/MapsApiMobile.html" title="more in-depth talk">more in-depth talk</a> about Maps API v3.  Then Pamela gave advice on how to load many markers (by using a lightweight marker class,  clustering, or rendering a clickable tile layer) and on how to load many polys (by using a lightweight poly class, simplifying, encoding, or rendering tiles). Sascha Aickin, an engineer at <a id="q3h7" href="http://www.redfin.com" title="Redfin">Redfin</a>, showed how they were able to display 500 housing results on their real estate search site by creating the "SuperMarker" class.
</p>

<p>
Mano and Keith presented various ways of <a id="kfno" href="http://code.google.com/events/io/sessions/BuildingScalableGeoApps.html" title="hosting geo data on Google infrastructure">hosting geo data on Google infrastructure</a>: Google Base API, Google App Engine, and the just-released Google Maps data API. Jeffrey Sambells showed how <a id="m7vz" href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fwww.connectorlocal.com%2F&amp;ei=jdwqSvfsBJTitAOw06DiCg&amp;usg=AFQjCNFYTu1FcfreGECPAzts_30x5cnojg&amp;sig2=ix5YBYRZIV2BuKE8ixtdVg" title="ConnectorLocal">ConnectorLocal</a> used the API (and their own custom PHP wrapper) for storing user data.
</p>

<p>
On the same day as announcing <a id="rs3h" href="http://googlegeodevelopers.blogspot.com/2009/05/hey-maps-api-and-earth-api-developers.html" title="better integration between the Google Earth and Google Maps JS APIs">better integration between the Google Earth and Google Maps JS APIs</a>, Roman Nurik presented on <a id="kf0i" href="http://code.google.com/events/io/sessions/BuildingAdvanced3DGoogleEarth.html" title="advanced Earth API topics">advanced Earth API topics</a>, and released a <a id="zdvy" href="http://code.google.com/p/earth-api-utility-library/" title="utility library">utility library</a> for making that advanced stuff simple.
</p>
<br>
<object width="746" height="413"><param name="movie" value="http://www.youtube.com/cp/vjVQa1PpcFP844uRHTLcqjiGtoJOO5u9-GmaUWZaFNM="></param><embed src="http://www.youtube.com/cp/vjVQa1PpcFP844uRHTLcqjiGtoJOO5u9-GmaUWZaFNM=" type="application/x-shockwave-flash" width="746" height="413"></embed></object>
<br><br>
<span class="post-author">Posted by Pamela Fox, Developer Relations</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-5180494612253195906?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/google-io-2009-geo-round-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Travellr: Behind the Scenes of our Region-Based Clusters</title>
		<link>https://googledata.org/google-maps/travellr-behind-the-scenes-of-our-region-based-clusters/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=travellr-behind-the-scenes-of-our-region-based-clusters</link>
		<comments>https://googledata.org/google-maps/travellr-behind-the-scenes-of-our-region-based-clusters/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 00:26:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Recently, there has been a lot of interest in clustering algorithms. The client-side grid-based MarkerClusterer was released in the open source library this year, and various server-side algorithms were discussed in the Performance Tips I/O talk. We've...]]></description>
				<content:encoded><![CDATA[<p><em>Recently, there has been a lot of interest in clustering algorithms. The client-side grid-based <a href="http://googlegeodevelopers.blogspot.com/2009/04/markerclusterer-solution-to-too-many.html">MarkerClusterer</a> was released in the open source library this year, and various server-side algorithms were discussed in the <a href="http://code.google.com/events/io/sessions/PerformanceTipsGeoApiMashups.html">Performance Tips</a> I/O talk. We've invited the Travellr development team to give us insight on their unique regional clustering technique.</em></p>
<p>
<a href="http://travellr.com" title="Travellr">Travellr</a> is a location aware answers service where people can ask travel-related questions about anywhere in the world. One of its features is a <a href="http://travellr.com/map" id="ulp." title="map-based interface to questions">map-based interface</a> to questions on the site using Google Maps.
</p>
<br>
<img src="http://docs.google.com/File?id=dxjmnbf_4t5qkqpfw_b" style="width: 592px; height: 377px;">
<br>
<i>Figure 1. An example of the Travellr Map, showing question markers for Australia.</i><br>

<br>
<br><b>Clustering for usability</b><br>
<p>
We learned that the best way to display markers without cluttering our map was to cluster our questions depending on how far you zoom in. If the user was looking at a map of the continents, we would cluster our questions into a marker for each continent. If the user zoomed-in to France we would then cluster our questions into a marker for each region or city that had questions. By clustering our data into cities, regions/states, countries, and continents, we could display relevant markers on the map depending on what zoom level the user was looking at.</p>
<br>
<b>Optimizing for Clustering</b><br>
<p>
Our next challenge was how to extract clustered data from our database without causing excessive server load. Every time the user pans and zooms on the map, we need to query and fetch new clustered data in order to display the markers on the map. We also might have to limit the data if the user has selected a tag, as we're only interested in a questions related to a topic (ie: "surfing"). To execute this in real-time would be painstakingly slow, as you would need to to cluster thousands of questions in thousands of locations with hundreds of tags on the fly. The answer? Pre-cluster your data of course!
</p>

<br>
<b>Step 1. Structure your location data</b><br>
<p>
When a question is asked about a city on Travellr, we also know its region/state, country and continent. We store more than 55,000 location points as a hierarchy, with each location "owning" its descendent nodes (and all of their data). Our locations are stored in a <a href="http://www.sitepoint.com/article/hierarchical-data-database/2/" id="hhgu" title="Modified Preorder Tree">Modified Preorder Tree</a> (also called Nested Sets). Modified Preorder Trees are a popular method of storing hierarchical data in a flat database table, having a focus on efficient data retrieval, and easy handling of sub trees. For each location we also keep a record of its depth within the tree, its location type (continent, country, region/state, or city), and its co-ordinates (retrieved using the Google Maps geocoder).
</p>
<br>
<b>Step 2. Aggregate your data</b><br>
<p>
We calculate aggregate data for every branch of our locations tree ahead of time. By storing aggregate data for cities, regions/states, countries, and continents, we provide an extremely fast and inexpensive method to query our locations database for any information regarding questions asked about a particular location. This data is updated every few minutes by a server-side task.
</p>
<p>
Our aggregations include:
</p>
<ul>
<li>Total question count for a location<br>
<li>Most popular tags for that location<br>
<li>Number of questions associated with each of those tags.<br>
</ul>
<br>
<b>How we query our structured, aggregate data on the map</b><br>
<p>
Whenever the user zooms or pans the map we fire off a query to our (unpublished ;) API with the tags they are searching for, the current zoom level, and the edge co-ordinates of the map's bounding box. Based on the zoom level (Figure 2) we work out whether we want to display markers for continents, countries, states, or cities. We then send back the data for these markers and display them on the map.<br>
</p>
<br>
<img src="http://docs.google.com/File?id=dc287ncr_29cb84v7ct_b" style="width: 592px; height: 380px;"><br>
<i>Figure 2. Clustering at different zoom levels (blue = continents, countries, pink = states, cities)</i><br>
<br>
<br>
<b>Everyone Wins</b><br>
<p>
So what is the result of structuring and aggregating our data in such a way? It means that we have nicely organized, pre-clustered data that can be read from cheaply and easily. This allows us to provide a super-fast map interface for Travellr that puts minimal load on our infrastructure. Everyone is happy!
</p>

<i>Comments or Questions?</i><br>
<p>
We'd love to <a href="http://travellr.com/contact_us" id="qdd:" title="hear from you">hear from you</a> if you have any questions on how we did things, or suggestions or comments about <a href="http://travellr.com/map" id="c1ym" title="Travellr's map">Travellr's map</a>. This article was written by Travellr's performance and scalability expert Michael Shaw (from <a href="http://www.insight4.com/" id="gno6" title="Insight4">Insight4</a>) and our client-side scripting aficionado Jaidev Soin.
</p>
<p>
You can visit Travellr at <a href="http://www.travellr.com" id="ykht" title="www.travellr.com">www.travellr.com</a>, or follow us on Twitter at <a href="http://twitter.com/travellr" id="r6gs" title="twitter.com/travellr">twitter.com/travellr</a>.</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-4613288409536568422?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/travellr-behind-the-scenes-of-our-region-based-clusters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build on top of your public Latitude location with GeoJSON &amp; KML</title>
		<link>https://googledata.org/google-maps/build-on-top-of-your-public-latitude-location-with-geojson-kml/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=build-on-top-of-your-public-latitude-location-with-geojson-kml</link>
		<comments>https://googledata.org/google-maps/build-on-top-of-your-public-latitude-location-with-geojson-kml/#comments</comments>
		<pubDate>Mon, 04 May 2009 21:35:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Chris Lambert, Software Engineer, Google Mobile

Today, we are pleased to announce the Google public location badge. In its simplest form, the badge is an easy way for Google Latitude users to share their current location to the world, whethe...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Chris Lambert, Software Engineer, Google Mobile</span>
<p>
Today, we are pleased to announce the <a href="http://www.google.com/latitude/apps/badge">Google public location badge</a>. In its simplest form, the badge is an easy way for Google Latitude users to share their current location to the world, whether it be on their website or blog. This works with a simple &lt;iframe&gt; snippet that users can just embed in their page. We have tried to make this process as easy as possible, but we realize there is an entirely different set of people (you guys, the developers!) that want to do more interesting things with their location.
</p>
<p>
For those users, we are also pleased to announce that we're releasing KML and JSON feeds of the location data underlying the public location badge. You can take your personal KML feed and open it in <a href="http://earth.google.com/">Google Earth</a>, load it in <a href="http://googlemapsapi.blogspot.com/2006/11/kml-on-google-maps.html">Google Maps</a>, or put it on your own website with the <a href="http://googlemapsapi.blogspot.com/2007/03/kml-and-georss-support-added-to-google.html">Google Maps API</a>. Or you can gain access to the raw latitude, longitude and accuracy from your Google public location badge with the <a href="http://geojson.org/">GeoJSON</a> format seen below. As an added bonus, both the JSON and KML feeds allow you to fetch the locations of multiple users &mdash; you only need to change the user parameter to use comma separated identifiers instead of a single one. These two feeds put location information back in the hands of our users, and we're excited to see the kinds of applications developers will build. If you make something cool, be sure to stop by and show us at one of the <a href="http://googlegeodevelopers.blogspot.com/2009/04/upcoming-conferences-global-geo.html">upcoming geo conferences</a>!
</p>
<pre>
{
   "type":"FeatureCollection",
   "features":[
      {
         "type":"Feature",
         "geometry":{
            "type":"Point",
            "coordinates":[
               -122.421092,
               37.79236
            ]
         },
         "properties":{
            "id":"-1890825674540886039",
            "accuracyInMeters":75,
            "timeStamp":1241400239,
            "reverseGeocode":"San Francisco, CA, USA",
            "photoUrl":"...",
            "photoWidth":96,
            "photoHeight":96,
            "placardUrl":"...",
            "placardWidth":56,
            "placardHeight":59
         }
      }
   ]
}
</pre>

<p>Note: These feeds are read only; there is currently no API to let you modify your location.</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-5841558349933923237?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/build-on-top-of-your-public-latitude-location-with-geojson-kml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upcoming Conferences: Global Geo Goodness</title>
		<link>https://googledata.org/google-maps/upcoming-conferences-global-geo-goodness/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=upcoming-conferences-global-geo-goodness</link>
		<comments>https://googledata.org/google-maps/upcoming-conferences-global-geo-goodness/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 06:30:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


It's conference season, and the geo team is coming out in full force. Here are some of the upcoming conferences that we'll be speaking at - if you attend any of these, be sure to say hi and let us know how you're u...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>
It's conference season, and the geo team is coming out in full force. Here are some of the upcoming conferences that we'll be speaking at - if you attend any of these, be sure to say hi and let us know how you're using our APIs!
</p>

<ul>
<li><a href="http://www.webdu.com.au/">WebDU</a>: Sydney, Australia, May 21-22
<li><a href="http://en.oreilly.com/where2009/">Where2.0</a>: San Francisco, CA, May 19-21
<li><a href="http://wherecamp.pbworks.com/">WhereCamp</a>: Palo Alto, CA, May 22-23
<li><a href="http://code.google.com/events/io/">Google I/O</a>: San Francisco, CA, May 27-28
<br/>
Google Developer Days:
<li><a href="http://code.google.com/intl/zh-CN/events/developerday/2009/home.html">GDD China</a>: Beijing, China, June 5
<li><a href="http://code.google.com/intl/ja/events/developerday/2009/home.html">GDD Japan</a>: Tokyo, Japan, June 9
<li><a href="http://code.google.com/events/developerday/2009/">GDD Brazil</a>: Sao Paolo, Brazil, June 29
</ul>

<p>For more events near you, check out our <a href="http://code.google.com/events/calendar/">Developer Events Calendar</a>.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-5888532021342203411?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/upcoming-conferences-global-geo-goodness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MarkerClusterer: A Solution to the Too Many Markers Problem</title>
		<link>https://googledata.org/google-maps/markerclusterer-a-solution-to-the-too-many-markers-problem/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=markerclusterer-a-solution-to-the-too-many-markers-problem</link>
		<comments>https://googledata.org/google-maps/markerclusterer-a-solution-to-the-too-many-markers-problem/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 20:26:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Xiaoxi Wu, Community Developer


Hi, I'm Xiaoxi (Frank) Wu. I'm a software engineer working for Beyondsoft in Beijing China, where I'm currently working on Maps API applications. While I was learning the Google Maps API, I got a lot of help f...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Xiaoxi Wu, Community Developer</span>

<p>
Hi, I'm Xiaoxi (Frank) Wu. I'm a software engineer working for Beyondsoft in Beijing China, where I'm currently working on Maps API applications. While I was learning the Google Maps API, I got a lot of help from the <a href="http://googlegeodevelopers.blogspot.com/2009/04/groups.google.com/group/Google-Maps-API/">forum</a> and the <a href="http://gmaps-utility-library.googlecode.com/">open-source library</a>, so I've decided to give back to the community with some of my own code.
</p>

<p>
The first library that I'm releasing is <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/markerclusterer/1.0/">MarkerClusterer</a>. Once, a friend of mine encountered a problem with his application. Using the API, he developed a map and added thousands of markers on the map, and saw that it made his map un-usably slow. This was because every marker is a combination of several DOM elements, and it's a lot of work for a browser to create many thousands of DOM elements. I decided that clustering would be a good solution for his problem, and came up with MarkerClusterer. MarkerClusterer collects markers into different clusters and displays the number of markers in each cluster with a label, creating new clusters as the map zoom level changes. The clustering algorithm is simple; for each new marker it sees, it either puts it inside a pre-existing cluster, or it creates a new cluster if the marker doesn't lie within the bounds of any current cluster.  Because the clusters have a fixed size in each zoom level there are almost the same number of clusters in viewport in average - so MarkerClusterer has a good max and average run time. The screenshot below shows the effect of using MarkerClusterer on an array of 1000 markers (and the <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/markerclusterer/1.0/examples/speed_test_example.html">live demo</a> shows you the speed difference):
</p>
<p>
<img src="http://gmaps-samples.googlecode.com/svn/trunk/images/screenshot_clusterereffect.jpg"/>
</p>

<p>
It's easy to use - just add your markers to an array, pass that and your map into the MarkerClusterer, and it'll take care of the rest. Check out the <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/markerclusterer/1.0/examples/simple_example.html">simple example</a> and code snippet below:
</p>

<pre class="code">
var markers = [];
  for (var i = 0; i &lt; 100; ++i) {
    var latlng = new GLatLng(data.photos[i].latitude, data.photos[i].longitude);
    var marker = new GMarker(latlng);
    markers.push(marker);
  }
var markerCluster = new MarkerClusterer(map, markers);
</pre>

<p>
You can also set some options for the MarkerClusterer like the cluster icons and the size of the clusters. You can see those used in this <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/markerclusterer/1.0/examples/advanced_example.html">advanced example</a>. If you want to learn more, check out the <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/markerclusterer/1.0/docs/reference.html">class reference</a> or the <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/markerclusterer/1.0/docs/examples.html">how-to</a>. 
</p>

<p>
For other clustering options for your markers, check out the <a href="http://www.maptimize.com/">Maptimize hosted service</a> or read <a href="http://www.svennerberg.com/2009/01/handling-large-amounts-of-markers-in-google-maps/">this article</a> that compares other 3rd-party clustering extensions. 
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-1604281857863577285?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/markerclusterer-a-solution-to-the-too-many-markers-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Articles: JQuery, Heat Maps, Multi-Touch, Clustering, &amp; More</title>
		<link>https://googledata.org/google-maps/new-articles-jquery-heat-maps-multi-touch-clustering-more/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-articles-jquery-heat-maps-multi-touch-clustering-more</link>
		<comments>https://googledata.org/google-maps/new-articles-jquery-heat-maps-multi-touch-clustering-more/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 23:17:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


Thanks to Google Alerts and Twitter search, I'm always finding articles and blog posts written by developers about using our various Maps APIs. On the assumption that not all developers are constantly monitoring th...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>
Thanks to Google Alerts and Twitter search, I'm always finding articles and blog posts written by developers about using our various Maps APIs. On the assumption that not all developers are constantly monitoring the internet for occurences of "google maps api", I've made it easy for you to benefit from these articles as well by linking to them from the documentation.
</p>

<p>
On the <a href="http://code.google.com/apis/maps/documentation/articles.html">articles page</a> for the JavaScript API, you'll find externally hosted articles on topics like <a href="http://marcgrabanski.com/article/jquery-google-maps-tutorial-basics">Using JQuery with the Maps API</a>, <a href="http://geochalkboard.wordpress.com/2009/03/11/density-mapping-in-google-maps-with-heatmapapi/">Density Mapping with the HeatMapAPI</a>, and <a href="http://www.svennerberg.com/2009/01/handling-large-amounts-of-markers-in-google-maps/comment-page-1/#comment-3003">Handling Large Amounts of Markers</a>. 
</p>
<p>
On the articles page for the Flash API, you'll find articles on topics like <a href="http://gvlt.wordpress.com/2008/05/17/tutorial-thematic-mapping-with-the-google-maps-flash-api/">Thematic Mapping</a>, <a href="http://amusicology.wordpress.com/2008/11/21/using-google-maps-api-in-actionscript-30-to-render-images/">Creating Custom Maps</a>, and <a href="http://www.cyancdesign.com/2009/03/flash-google-maps-api-and-multi-touch/">Using the API with Multi-Touch Technology</a>.
</p>
<p>Check out the articles pages for the full list, and <a href="https://spreadsheets.google.com/viewform?formkey=ckJxcTRsdHBBSEhyVzA3dFh3OVNvZnc6MA..">let us know</a> if you have an article that should be on the lists.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-304080228708380379?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/new-articles-jquery-heat-maps-multi-touch-clustering-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing the Mapplets API Demo Gallery</title>
		<link>https://googledata.org/google-maps/introducing-the-mapplets-api-demo-gallery/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=introducing-the-mapplets-api-demo-gallery</link>
		<comments>https://googledata.org/google-maps/introducing-the-mapplets-api-demo-gallery/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 22:46:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


Due to the popularity of the demo galleries for our JavaScript and Flash APIs, we've added a demo gallery to the Mapplets API documentation as well. The demo gallery shows Mapplets created by both Google engineers ...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>
Due to the popularity of the demo galleries for our <a href="http://code.google.com/apis/maps/documentation/demogallery.html">JavaScript</a> and <a href="http://code.google.com/apis/maps/documentation/flash/demogallery.html">Flash</a> APIs, we've added a <a href="http://code.google.com/apis/maps/documentation/mapplets/demogallery.html">demo gallery</a> to the Mapplets API documentation as well. The demo gallery shows Mapplets created by both Google engineers and 3rd party developers, and provides links so that you can easily view the XML or use the Mapplet in Google Maps. You can learn from the demos how to do things like display KML files, store user preferences, localize your gadget to many languages, render custom tile layers on top of the base map, and more. Many of the demos come straight out of Sterling Udell's fantastic book, <a href="http://www.apress.com/book/view/9781430216209">"Beginning Google Maps Mashups with Mapplets, KML, and GeoRSS: From Novice to Professional"</a>. 
</p>
<p>
Browse through the <a href="http://code.google.com/apis/maps/documentation/mapplets/demogallery.html">demo gallery</a>, and post in our new dedicated <a href="http://groups.google.com/group/google-mapplets">Mapplets API forum</a> if you have questions (or a demo to contribute!).
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-6906713008911196121?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/introducing-the-mapplets-api-demo-gallery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Open-Source Tabs, Markers, and Controls Libraries</title>
		<link>https://googledata.org/google-maps/new-open-source-tabs-markers-and-controls-libraries/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-open-source-tabs-markers-and-controls-libraries</link>
		<comments>https://googledata.org/google-maps/new-open-source-tabs-markers-and-controls-libraries/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 06:59:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


The JavaScript API utility library has been growing fast in the last 3 months, with nearly double the number of libraries now being worked on in the development project. We can always use more libraries or help pre...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>
The <a href="http://code.google.com/p/gmaps-utility-library/">JavaScript API utility library</a> has been growing fast in the last 3 months, with nearly double the number of libraries now being worked on in the development project. We can always use more libraries or help prepping the current libraries for release (code reviews, documentation, examples) - if you're interested, email <a href="http://groups.google.com/group/google-maps-utility-library">the group</a> to introduce yourself and let us know how you'd like to help.  In the meantime, check out the most recent releases:
</p>

<br/> 
<table> 
<tr> 
<td> 
<img width="160" height="128" src="http://gmaps-samples.googlecode.com/svn/trunk/images/screenshot_ajaxmaxtabs.jpg"> 
</td> 
<td>
<b>TabbedMaxContent 1.0: </b>
This library provides a max info window UI that's similar to the info window UI for local business results on <a href="http://maps.google.com">Google Maps</a>, and works in conjunction with the API's <a href="http://code.google.com/apis/maps/documentation/reference.html#GInfoWindowOptions.maxContent">maxContent</a> option. This comes courtesy of Nianwei, a developer who's also working on two upcoming libraries for a lightweight <a href="http://gmaps-utility-library-dev.googlecode.com/svn/trunk/keydragzoom/">keyboard-triggered drag-to-zoom</a> and an <a href="http://gmaps-utility-library-dev.googlecode.com/svn/trunk/arcgislink/">ArcGIS connection layer</a>. Check out the <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/tabbedmaxcontent/1.0/docs/examples.html">examples</a> or <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/tabbedmaxcontent/1.0/docs/reference.html">reference</a>. 
</td>
</tr>
<tr>
<td> 
<img width="160" height="128" src="http://gmaps-samples.googlecode.com/svn/trunk/images/screenshot_chartpopupmarker.jpg"> 
</td> 
<td>
<b>PopUpMarker 1.0: </b>
This library displays a "popup" (mini infowindow) to the side of a marker. The popup can either embed HTML, or it can use the Google Charts API to show text and icons in custom color schemes. This comes courtesy of Masashi, a Maps API expert from Japan with a plethora of <a href="http://googlemaps.googlermania.com/">tutorials and examples</a> (all in Japanese, of course). Check out the <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/popupmarker/1.0/docs/examples.html">examples</a> or <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/popupmarker/1.0/docs/reference.html">reference</a>.
</td>
</tr>
<tr>
<td> 
<img width="160" height="128" src="http://gmaps-samples.googlecode.com/svn/trunk/images/screenshot_extlargemapcontrol.jpg"> 
</td> 
<td>
<b>ExtLargeMapControl 1.1: </b>
This library creates a control that mimics the functionality and UI of <a href="http://code.google.com/apis/maps/documentation/reference.html#GControlImpl.GLargeMapControl3D">GLargeMapControl3D</a>, the current control on <a href="http://maps.google.com">Google Maps</a>, without the Street View integration. Developers can easily re-skin this control to match their own site, and use it in combination with a re-skinned <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/extmaptypecontrol/1.3/docs/examples.html">ExtMapTypeControl</a> for a full custom navigational UI. This also comes courtesy of Masashi, with help from Bjorn, author of <a href="http://googlegeodevelopers.blogspot.com/2008/11/2-more-libraries-released.html">SnapToRoute and ProgressBarControl</a>. Check out the <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/extlargemapcontrol/1.1/docs/examples.html">examples</a> or <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/extlargemapcontrol/1.1/docs/reference.html">reference</a>.
</td>
</tr>
</table><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-1021682062045143376?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/new-open-source-tabs-markers-and-controls-libraries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monkey see, monkey do</title>
		<link>https://googledata.org/google-maps/monkey-see-monkey-do/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=monkey-see-monkey-do</link>
		<comments>https://googledata.org/google-maps/monkey-see-monkey-do/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 04:55:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Jez Fletcher, Maps API team


Ever wanted to be someone else? No, we're not offering a Being John Malkovich service, but we are offering Maps API developers the default look-and-feel of maps.google.com, all with one simple function call.


No...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Jez Fletcher, Maps API team</span>

<p>
Ever wanted to be someone else? No, we're not offering a <a href="http://www.google.com/search?q=being+john+malkovich">Being John Malkovich</a> service, but we are offering Maps API developers the default look-and-feel of <a href="http://maps.google.com">maps.google.com</a>, all with one simple function call.
</p>
<p>
Now, you can get the standard UI elements you'd see on Google Maps (including the newer style "3D" map and zoom controls), along with other standard behaviour such as keyboard and mouse handling, just by adding one line of code.
</p>

<pre>
  // Create a map.
  var map = new GMap2(myMapDiv);
  // Give it the maps.google.com experience.
  map.setUIToDefault();
</pre>

<p>
<img src="http://4.bp.blogspot.com/_FylZ0kTmnTQ/SaTR9PctmxI/AAAAAAAA4Is/zJfn7PMCN0U/s400/setuitodefault3.jpg">
</p>

<p>
  What's more, this function will ensure that if the UI of maps.google.com changes, these changes will also be reflected in your site without you having to update anything.
</p>
<p>The function will automatically adjust what controls the map gets based on the size of the map. For maps larger than 300 x 400, the default controls are:
</p>
<ul>
  <li><code>GLargeMapControl3D</code></li>
  <li><code>GMapTypeControl</code></li>
  <li><code>GScaleControl</code></li>
</ul>
<p>
  For maps 300 x 400 or smaller, the default controls are:
</p>
<ul>
  <li><code>GSmallZoomControl3D</code></li>
  <li><code>GMenuMapTypeControl</code></li>
</ul>
<p>
  Both will also enable scroll wheel zoom, double click zoom and add a
  <code>GKeyboardHandler</code> to the map.
</p>

<p>
You can also tweak the appearance to your liking. If you mostly want the  standard behaviour, but, for example, don't want scroll wheel zoom enabled, you can get an instance of the default GMapUIOptions object, and adjust the fields to your liking.
</p>
<pre>
  // Get the default GMapUIOptions.
  var uiOptions = map.getDefaultUI();
  // Disable scroll wheel zoom.
  uiOptions.zoom.scrollwheel = false;
  // Now set the map's UI with the tweaked options.
  map.setUI(uiOptions);
</pre>
<p>
  Along with this change, you can now also get direct access to the new 3D controls used on maps.google.com:
</p>
<ul>
  <li><code>GLargeMapControl3D</code>, and</li>
  <li><code>GSmallZoomControl3D</code></li>
</ul>
<p>
  A full reference of the functions, the GMapUIOptions class and all the defaults
  are available on the <a href="http://code.google.com/apis/maps/documentation/reference.html#GMapUIOptions">Google Maps API Reference</a>.  As always, head over to the <a href="http://groups.google.com/group/Google-Maps-API">forum</a> if you have any questions.
</p>
<p>
Sorry that puppeteering of John M is not included, but at least now your site can easily look and act like Google Maps!
</p>
<p>
One more thing: if you want to meet the Maps API team and hear about other <a href="http://code.google.com/events/io/sessions.html">exciting things</a> we're working on, come to <a href="http://code.google.com/io">Google I/O</a> in May.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-5066234722613650998?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/monkey-see-monkey-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Webmasters: Easily Embed Directions on Your Site</title>
		<link>https://googledata.org/google-maps/webmasters-easily-embed-directions-on-your-site/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=webmasters-easily-embed-directions-on-your-site</link>
		<comments>https://googledata.org/google-maps/webmasters-easily-embed-directions-on-your-site/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 11:30:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


Back in December, Julie posted on the Google LatLong blog about a new directions gadget that webmasters can embed on their websites to make it super easy for people to find them. Check out that post for information...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>
Back in December, Julie posted on the Google LatLong blog about a new directions gadget that webmasters can embed on their websites to make it super easy for people to find them. <a href="http://google-latlong.blogspot.com/2008/12/gift-of-gadgets.html">Check out that post</a> for information on embedding and the diverse ways the gadget can be used (with coordinates, addresses, zip codes, and more).
</p>
<p>
The gadget uses the <a href="http://code.google.com/apis/maps/">Google Maps API</a> and <a href="http://jquery.com/">jQuery</a>, and does nifty things like display a "Did you mean..." when they've entered an ambiguous address and then animates the selected address flying into the form. For those of you developers who like the functionality but want the it more integrated more into your site, the good news is that you can easily copy, paste, and modify the code from <a href="http://hosting.gmodules.com/ig/gadgets/file/114281111391296844949/driving-directions.xml">the gadget XML spec</a>. 
</p>
<img src="http://3.bp.blogspot.com/_T1lquhCmKo8/SYZ1JMOCNDI/AAAAAAAABrk/5nACu_0rK6E/s400/screenshot_directionsgadget.jpg"  style="border:1px solid black"/><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-6822847404753034179?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/webmasters-easily-embed-directions-on-your-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>TimeMap: Helping you add the 4th dimension to your maps</title>
		<link>https://googledata.org/google-maps/timemap-helping-you-add-the-4th-dimension-to-your-maps/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=timemap-helping-you-add-the-4th-dimension-to-your-maps</link>
		<comments>https://googledata.org/google-maps/timemap-helping-you-add-the-4th-dimension-to-your-maps/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 22:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Nick Rabinowitz, UC Berkeley


Hi, I'm Nick Rabinowitz, guest poster. I'm a grad student at the UC Berkeley School of Information and the creator of TimeMap, a Javascript library that helps the Google Maps API play nicely with the SIMILE Time...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Nick Rabinowitz, UC Berkeley</span>

<p>
Hi, I'm Nick Rabinowitz, guest poster. I'm a grad student at the <a href="http://www.ischool.berkeley.edu/">UC Berkeley School of Information</a> and the creator of <a href="http://code.google.com/p/timemap/">TimeMap</a>, a Javascript library that helps the Google Maps API play nicely with the <a href="http://code.google.com/p/simile-widgets/">SIMILE Timeline API</a> to create maps and timelines that work together. Readers of the <a href="http://google-latlong.blogspot.com/">Google LatLong blog</a> may have seen TimeMap in action already, in the <a href="http://google-latlong.blogspot.com/2008/06/golly-gee-look-whos-3.html">Maps API's 3rd birthday post</a>. That post promised an eventual technical explanation of how to make such map-timeline mashups. Well, exhale your bated breath: Here it is!
</p>

<b>TimeMap in Theory:</b>
<br/>
<p>
The basic idea of TimeMap is to wrap both the Google Maps API and SIMILE Timeline in a third API in order to control interactions between a map and a timeline on the page. The "wrapping" happens via a set of Javascript objects that hold references:
<ul>
<li>
<b>TimeMap:</b> The TimeMap object has references to the GMap2 object (as "map") and the Timeline object (as "timeline"), which you can access directly (e.g. myTimeMap.map.zoomIn()). It also has an array of TimeMapDataset objects.
</li>
<li>
<b>TimeMapDataset:</b> A TimeMapDataset object holds an array of TimeMapItems.
</li>
<li>
<b>TimeMapItem:</b> A TimeMapItem has references to a placemark (on the map) and an event (on the timeline). Calling methods on the item allows it to control the placemark and event so they work in sync.
</li>
</ul>
</p>
<p>
This tiered structure of references means we can set functions or event listeners on one object that make things happen in another - e.g. hiding placemarks on the map when their associated event scrolls out of view on the timeline, or opening a map info window when the corresponding timeline item is clicked. It also means that you can set cascading options on the whole TimeMap, a single dataset, or a single item - for example, you can set a theme on a dataset so that all its items display the same way.
</p>
<p>
The other big thing the library does is handle initialization. The timemapInit() function lets you create your TimeMap and load your data in a single function call, setting all the parameters in JSON. To make this really flexible, it supports a bunch of pluggable function hooks. For example, there's a default openInfoWindow() function called when you click the placemark or the event - but you can write your own function (e.g. to use <a href="http://gmaps-utility-library-dev.googlecode.com/svn/trunk/extinfowindow/docs/examples.html">ExtInfoWindow</a>) and set it on a per-dataset or per-item basis. 
</p>

<b>TimeMap in Action:</b>
<br/>
<p>
The library includes a lot of helper functions to help you set up your own TimeMap. You can load data as inline JSON, remote JSON, or KML (with <a href="http://code.google.com/apis/kml/documentation/time.html">TimeStamp and TimeSpan</a> elements). Click the screenshots below for examples of each of those:
</p>

<ul>
<li>
<a href="http://timemap.googlecode.com/svn/trunk/examples/kenya.html">Post-Election Violence in Kenya (using KML data)</a><br/>
<a href="http://timemap.googlecode.com/svn/trunk/examples/kenya.html"><img style="cursor:pointer; cursor:hand;width: 400px; height: 200px;" src="http://1.bp.blogspot.com/_T1lquhCmKo8/SXlR1QbwBzI/AAAAAAAABqY/fnaW9tcy49Y/s400/screenshot_timemap_kml.jpg"/></a>

</li>
<li>
<a href="http://timemap.googlecode.com/svn/trunk/examples/basic.html">Simple Three-Item Dataset (using inline JSON data)</a> <br/>
<a href="http://timemap.googlecode.com/svn/trunk/examples/basic.html"><img style="cursor:pointer; cursor:hand;width: 400px; height: 200px;" src="http://4.bp.blogspot.com/_T1lquhCmKo8/SXlRq9Ql1dI/AAAAAAAABqQ/_iQFsH6BpkI/s400/screenshot_timemap_json.jpg"/></a>

</li>
<li>
<a href="http://gmaps-samples.googlecode.com/svn/trunk/timemap/google_events.html">Google Events TimeMap (JSON Calendar Feed + transformFunction)</a> <br/>
<a href="http://gmaps-samples.googlecode.com/svn/trunk/timemap/google_events.html"><img style="cursor:pointer; cursor:hand;width: 400px; height: 200px;" src="http://4.bp.blogspot.com/_T1lquhCmKo8/SXlRaEfcRiI/AAAAAAAABqI/aopXYYu5wYo/s400/screenshot_timemap_googleev.jpg"/></a>

</li>
</ul>
<p>
If all this piques your interest, check out the BasicUsage wiki, svn checkout the code, and get started making your own TimeMap. Happy coding!
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-8243734839832346106?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/timemap-helping-you-add-the-4th-dimension-to-your-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>More Open-Source Goodies for Flash API Developers: DragZoomControl, MarkerTracker</title>
		<link>https://googledata.org/google-maps/more-open-source-goodies-for-flash-api-developers-dragzoomcontrol-markertracker/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=more-open-source-goodies-for-flash-api-developers-dragzoomcontrol-markertracker</link>
		<comments>https://googledata.org/google-maps/more-open-source-goodies-for-flash-api-developers-dragzoomcontrol-markertracker/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 00:46:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


You know what's awesome about open-source code written in one language? It's fairly easy to port it over to a similar language, and suddenly it's useful for a completely new audience. That's what's happening in our...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>
You know what's awesome about open-source code written in one language? It's fairly easy to port it over to a similar language, and suddenly it's useful for a completely new audience. That's what's happening in our open-source JavaScript/AS3 Maps API utility libraries, and I'm loving it. Check out the most recent ports:
</p>
<br/>
<table>
<tr>
<td>
<img width="160" height="128" src="http://gmaps-samples-flash.googlecode.com/svn/trunk/images/screenshot_dragzoomcontroldemo.jpg">
</td>
<td><b>DragZoomControl:</b> This custom control lets user drag a rectangle on the map to zoom in to just that area, and it's one of my personal favorite ways of drilling down on a map (particularly since I'm usually on a laptop, without a scroll-wheel mouse). The port comes courtesy of developer Brian Richardson. Check out the <a href="http://gmaps-utility-library-flash.googlecode.com/svn/trunk/examples/DragZoomonControl/bin-release/DragZoom.html">demo</a> or the <a href="http://gmaps-utility-library-flash.googlecode.com/svn/trunk/docs/com/google/maps/extras/dragzoomcontrol/package-detail.html">reference</a>.
</td>
</tr>
<tr>
<td>
<img width="160" height="128" src="http://gmaps-samples-flash.googlecode.com/svn/trunk/images/screenshot_markertrackerdemo.jpg">
</td>
<td><b>MarkerTracker:</b> This class lets you assign "trackers" to markers, so that when a marker moves out of the visible viewport, a ghost marker and arrow points in the direction of the tracked marker. For maps where there's one very important marker/POI, it's a great way of showing the user how to get back to the original marker. This port comes courtesy of developer Michael Menzel. Check out the <a href="http://gmaps-utility-library-flash.googlecode.com/svn/trunk/examples/MarkerTrackerDemo/bin-release/MarkerTrackerDemo.html">demo</a> or <a href="http://gmaps-utility-library-flash.googlecode.com/svn/trunk/docs/com/google/maps/extras/dragzoomcontrol/package-detail.html">reference</a>.
</td>
</tr>
<tr>
<td>
<img width="160" height="128" src="http://gmaps-samples-flash.googlecode.com/svn/trunk/images/screenshot_kmlparser.jpg">
</td>
<td><b>KMLParser:</b> The KML parsing classes, which were a minimal port of the C++ libkml library, now have support for KML styles. This enhancement comes from developer Cecil Reid. Check out the <a href="http://gmaps-utility-library-flash.googlecode.com/svn/trunk/examples/KMLParser/bin-release/KMLParser.html">demo</a> or <a href="http://gmaps-utility-library-flash.googlecode.com/svn/trunk/docs/com/google/maps/extras/xmlparsers/kml/package-detail.html">reference</a>.
</td>
</tr>
</table>

<p>Thanks to all the developers helping to grow the library! If you're a developer with some code to contribute, just follow the steps in the <a href="http://code.google.com/p/gmaps-utility-library-flash/wiki/FrequentlyAskedQuestions">wiki</a> to get involved.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-4565116735486206885?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/more-open-source-goodies-for-flash-api-developers-dragzoomcontrol-markertracker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Maps API Library for GWT</title>
		<link>https://googledata.org/google-maps/google-maps-api-library-for-gwt/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-maps-api-library-for-gwt</link>
		<comments>https://googledata.org/google-maps/google-maps-api-library-for-gwt/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 02:33:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Eric Ayers, Google Web Toolkit Team


The Geo and the Google Web Toolkit teams are pleased to announce the public release of the Maps API library for Google Web Toolkit.  Google Web Toolkit (GWT) provides a framework for writing web applicati...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Eric Ayers, Google Web Toolkit Team</span>

<p>
The Geo and the Google Web Toolkit teams are pleased to announce the public release of the <a href="http://code.google.com/p/gwt-google-apis/">Maps API library for Google Web Toolkit</a>.  <a href="http://code.google.com/webtoolkit">Google Web Toolkit</A> (GWT) provides a framework for writing web applications using the Java language.  The Maps API library for GWT provides Java classes which are designed to provide a familiar paradigm for Java users to access the Google Maps JavaScript API.  
</p>
<pre class="code">
 // Open a map centered on the equator/prime meridian
 map = new MapWidget(LatLng.newInstance(0, 0), 2);
 map.setSize("100%", "100%");

 // Add some controls
 map.addControl(new SmallMapControl());
 map.addControl(new SearchControl());
</pre>

<p>
The GWT compiler translates your Java code into JavaScript for deployment to end users.  No Java runtime is needed in the browser.
</p>

<p>
Using the library, you can freely mix Maps into a GWT application, or you can add GWT Widgets in with Map constructs, like Controls and InfoWindows. The <a href="http://gwt.google.com/samples/GeoBlogDec08/GeoBlogDec08.html">demo below</a> combines the DecoratorPanel, StackPanel, and SuggestBox widgets with a Map widget that uses Markers, Directions, Geocoding, and Geodesic Polylines.
</p>
<br>
<iframe style="border: 0; margin-left: 5px;" src="http://gwt.google.com/samples/GeoBlogDec08/GeoBlogDec08.html" width="700" height="425"></iframe>

<p>
There is online <a href="http://code.google.com/docreader/#p=gwt-google-apis-google-apis&t=MapsJavadoc">documentation</a>, <a href="http://code.google.com/docreader/#p=gwt-google-apis-google-apis&t=MapsSampleApplications">samples</a>, <a href="http://code.google.com/docreader/#p=gwt-google-apis-google-apis&t=MapsGettingStarted">tutorials</a>, and a <a href="http://groups.google.com/group/GWT-Google-Apis">support forum</a>.
</p>
<p>
The library has been released previously in milestone and release candidate forms, and it supports most Maps features up to version 2.113.  We would like to thank the hundreds of developers that have tried the library and provided feedback.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-9199398717913258154?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/google-maps-api-library-for-gwt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008 in Google Geo Land: All Lit Up</title>
		<link>https://googledata.org/google-maps/2008-in-google-geo-land-all-lit-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2008-in-google-geo-land-all-lit-up</link>
		<comments>https://googledata.org/google-maps/2008-in-google-geo-land-all-lit-up/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 04:21:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


In 2007, we wrapped up the year with a bulleted list of our various accomplishments from this year. In 2008, a few LIs and a UL just won't do. So we're celebrating the year in typical New Years fashion: fireworks, ...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>
In 2007, we wrapped up the year with a bulleted list of our various accomplishments from this year. In 2008, a few LIs and a UL just won't do. So we're celebrating the year in typical New Years fashion: fireworks, baby. Watch the show below, and click any headline it leaves behind to read the relevant blog post. If it went too fast for you or you just can't get enough of it, then you can watch again by clicking the button below the map. Happy New Years, all! 
</p>
<br/>
<iframe src="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/NewYearsSky/NewYearsSky.html" frameborder="0" scrolling="no" width="100%" height="400"></iframe>

<p>
P.S. Five bucks if you can find a way to name-drop the Google Geo APIs in your midnight toast (or New Years' post?) and send me proof.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-1188148750379007095?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/2008-in-google-geo-land-all-lit-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NORAD Tracks Santa Flash Map: Behind the Scenes</title>
		<link>https://googledata.org/google-maps/norad-tracks-santa-flash-map-behind-the-scenes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=norad-tracks-santa-flash-map-behind-the-scenes</link>
		<comments>https://googledata.org/google-maps/norad-tracks-santa-flash-map-behind-the-scenes/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 22:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team

For the second year in a row, Google partnered with NORAD to provide an online map-based interface for tracking Santa's Dec. 24th sleigh ride across the world.  Last year, the map was powered with the JavaScript Map...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>
<p>
For the second year in a row, Google partnered with NORAD to provide an online map-based interface for tracking Santa's Dec. 24th sleigh ride across the world.  Last year, the map was powered with the <a href="http://code.google.com/apis/maps/">JavaScript Maps API</a>. As the programmer for this year's map, I made the decision to use the <a href="http://code.google.com/apis/maps/documentation/flash/">Maps API for Flash</a> instead. Why? I desperately wanted a glittery "comet trail" to follow Santa's path, and those kinds of effects are easier to pull off in Flash. (One might argue that decisions shouldn't be based on glitter, but one could counter that by pointing out the entire 1970s decade was based on glitter). 
</p>
<p>
While converting the map over to Flash, I wrote code that may be helpful to other Flex developers out there. Instead of just open-sourcing the Santa Tracker map code* and forcing you to sort through it all, I've created standalone demos and descriptions for each of the features:
</p>

<ul>
<li><img src="http://gmaps-samples-flash.googlecode.com/svn/trunk/images/screenshot_cloudoverlaydemo.jpg" align="right"><b>Comet Trail:</b> The purpose of the trail was to show Santa's recent trajectory, and give the flight more movement. The cloudy trail effect was achieved by creating a custom overlay that drew a line of increasing width through the 7 most recent markers, and then applying a BlurFilter to that line. To achieve the glitter effect on top of that, I create invisible circles of increasing radius around the markers, and then dynamically load in a sparkle SWF at random points within those circles. To get a twinkle instead of a strobe effect, each sparkle SWF is started at a different random frame in its timeline.
<br/>
Check out the <a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/CloudOverlayDemo/CloudOverlayDemo.html">demo</a> or <a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/CloudOverlayDemo/srcview/index.html">source code</a>.
</li>
<li><b>Embedded Youtube:</b> The real highlight of Santa's ride are the 23 locations where we have "Santa Cams" (Youtube videos), so it was important that we were able to view those Youtube videos on the map. It's a surprisingly difficult task, due to the facts that: 1) the embedded Youtube video player is an AS2 SWF, 2) the Santa map is an AS3 SWF, 3) the Youtube SWF has to be "destroyed" before a new Youtube SWF can play, and 4) AS3 SWFs cannot call methods inside an AS2 SWF. With help from the Youtube team and the AS3 Chromeless player library code, I was finally able to get Youtube + Flex to cooperate. The solution involves the creation of a "bridge" SWF in AS2 that communicates via LocalConnection to the AS3 SWF to load/unload videos, and it also involved a whole lot of random numbers. 
<br/>
Check out the <a href="http://pamelafox-samplecode.googlecode.com/svn/trunk/youtubeflex/bin-release/YoutubeEmbedTest.html">demo</a> or <a href="http://pamelafox-samplecode.googlecode.com/svn/trunk/youtubeflex/src/">source code</a>.
</li>
<li><img src="http://gmaps-samples-flash.googlecode.com/svn/trunk/images/screenshot_smartinfowindow.jpg" align="right"><b>Smart Info Windows:</b> To show all the locations, the map's default zoom was a viewport showing the whole world. Using the standard infowindows, this meant that when the user clicked on a location in the Northern hemisphere like the North Pole, the infowindow would pop up above the marker and pan the map so that the user just saw a whole lot of grey. Since I hate grey (it's the antithesis of glitter) and wanted a better user experience, Flash API engineer Dmitri Abramov wrote a "smart" info window for me that automatically opens in the direction (top, bottom, left, right) that minimizes panning. 
<br/>
Check out the <a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/SmartInfoWindowDemo/SmartInfoWindowDemo.html">demo</a> or <a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/SmartInfoWindowDemo/srcview/index.html">source code</a>.
</li>
<li><b>JavaScript <-> Flex:</b> Though the map was coded in Flex, many pages on the NORAD site were just JS/HTML. The "RADAR" data was stored as JSON, and common JavaScript functions were used for figuring out the current time and then calculating the current location and phase from that information. So, to avoid replicating all the same logic and data in AS3, we instead used ExternalInterface to send information from the JavaScript to the map, along with some open-source libraries for encoding JSON objects into strings and decoding the strings into AS3 objects.
<br/>
Check out the <a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/ExternalInterfaceJSON/embedmap.html">demo</a> or <a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/ExternalInterfaceJSON/srcview/index.html">source code</a>.
</li>
<li><img src="http://gmaps-samples-flash.googlecode.com/svn/trunk/images/screenshot_fullscreenmap.jpg" align="right">
<b>Full Screen:</b> A day before the map was set to go live, I realized that I'd been debugging the map SWF at 100% width/height all the time, when it was in fact going to be embedded inside a 500*450px space on the NORAD site. It depressed me that users wouldn't get to experience the map at the same size, so I searched Google for information on enabling full-screen on Flex apps, and happily discovered it was ridiculously easy to do - just a few lines of code, an "allowFullScreen" param in the HTML, and a toggle-able Flex Image control.
<br/>
Check out the <a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/FullScreenMap/FullScreenMap.html">demo</a> or <a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/FullScreenMap/srcview/index.html">source code</a>.
</li>
</ul>

<p>
* Okay, yeah, I open-sourced the whole code as well, mostly because I've developed an unhealthy  dependence on Google Code's nifty subversion repositories and issue trackers. Finding the NORAD repository is left as an exercise to the reader.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-4864237700406904033?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/norad-tracks-santa-flash-map-behind-the-scenes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2 More Libraries Released: ProgressBarControl &amp; SnapToRoute</title>
		<link>https://googledata.org/google-maps/2-more-libraries-released-progressbarcontrol-snaptoroute/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2-more-libraries-released-progressbarcontrol-snaptoroute</link>
		<comments>https://googledata.org/google-maps/2-more-libraries-released-progressbarcontrol-snaptoroute/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 17:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Björn Brala, GeoStart Lead Developer


Hi, my name is Björn Brala! In the last 2 years, I've been working on GeoStart, a framework based on the Maps API. In that time the community has been an invaluable source of information and help. Whil...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Björn Brala, GeoStart Lead Developer</span>

<p>
Hi, my name is Björn Brala! In the last 2 years, I've been working on <a href="http://www.geostart.nl/english">GeoStart</a>, a framework based on the Maps API. In that time the <a href="http://groups.google.com/group/Google-Maps-API">community</a> has been an invaluable source of information and help. While getting help is nice, helping is even nicer - so I've decided to properly release and document the code for two helper libraries into the <a href="http://code.google.com/p/gmaps-utility-library/">open-source utility library project</a>. 
</p>
<br/>
<h2>ProgressbarControl</h2>
<p>
When loading hundreds of markers into a viewport, you should communicate this to the user, and this class will help you do so. The progress bar is a custom GControl with a few basic commands to start, update and stop the loader. The general idea is that you set the amount of operations the map will plan to do and then once in a while send an update command to the control.
</p>
<p>The <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/progressbarcontrol/1.0/examples/markerloader.html">example below</a> uses the control to show the progress of markers being added and removed from the map. Click the "loadMarkers()" button to start it up:</p>

<iframe frameborder="0" scrolling="no" width="600" height="450" src="http://gmaps-utility-library.googlecode.com/svn/trunk/progressbarcontrol/1.0/examples/markerloader.html"></iframe>

<p>
If that interests you, check out the <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/progressbarcontrol/1.0/docs/reference.html">reference</a> and <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/progressbarcontrol/1.0/docs/examples.html">developer's guide</a> for the ProgressbarControl.
</p>
<br/>

<h2>SnapToRoute</h2>

<p>
In our framework, we wanted to enable administrators to not only create routes, but also plot different POIs along a route - so I created the SnapToRoute class based on one of Marcelo's <a href="http://maps.forum.nu/gm_mouse_dist_to_line.html">examples</a>. This class lets you snap a marker to the closest point on a polyline, ensuring that the marker is always somewhere on the line. 
</p>
<p>
There are numerous ways to use this tool. The <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/snaptoroute/1.0/examples/detailzoom.html">example below</a> uses the class to let you zoom into segments of a polyline:
</p>

<iframe frameborder="0" scrolling="no" width="600" height="425"  src="http://gmaps-utility-library.googlecode.com/svn/trunk/snaptoroute/1.0/examples/detailzoom.html"></iframe>

<p>
If that interests you, check out the <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/snaptoroute/1.0/docs/reference.html">reference</a> and <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/snaptoroute/1.0/docs/examples.html">developer's guide</a> for SnapToRoute.
</p>

<p>Hope everyone likes the little additions, and don't forget to check out the other classes in the <a href="http://code.google.com/p/gmaps-utility-library/">utility library</a>!
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-8150178718750401128?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/2-more-libraries-released-progressbarcontrol-snaptoroute/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Maps API for Flash + AIR: How did we ever breathe before?</title>
		<link>https://googledata.org/google-maps/google-maps-api-for-flash-air-how-did-we-ever-breathe-before/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-maps-api-for-flash-air-how-did-we-ever-breathe-before</link>
		<comments>https://googledata.org/google-maps/google-maps-api-for-flash-air-how-did-we-ever-breathe-before/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 20:23:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Dmitri Abramov, Maps API Team


Just a little over six months ago our team announced the release of the Google Maps API for Flash. Flash developers around the world welcomed this new API with excitement... and a barrage of feature requests. B...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Dmitri Abramov, Maps API Team</span>

<p>
Just a little over six months ago our team announced the release of the <a href="http://code.google.com/apis/maps/documentation/flash/">Google Maps API for Flash</a>. Flash developers around the world welcomed this new API with excitement... and a barrage of <a href="http://code.google.com/p/gmaps-api-issues/issues/list?can=2&q=apitype:Flash%20type:Enhancement&sort=-stars&colspec=ID%20Type%20Status%20Introduced%20Fixed%20Summary%20Internal%20Stars">feature requests</a>. By far the most popular one in the past six months has been the <a href="http://code.google.com/p/gmaps-api-issues/issues/detail?id=322">compatibility with Adobe AIR</a>. 
</p>
<p>
Throughout its three years of existence, the Google Maps API has become one of the most popular online APIs for creating web mapping applications at a time when web was the hot new thing. Well, in the past year, Adobe has taken web apps back to the desktop, with their innovative AIR product.
</p>
<p>
There were both technical and legal challenges blocking AIR support in
our API. AIR has a different security model, which required a number
of changes to the "internal plumbing" of the API in order to implement our delayed-loading model, where the actual
implementation of the map's functionality loads dynamically from
Google's servers once the application launches. Also, our Terms of
Service used to specify that the Maps API could only be used for
online web applications.
</p>
<p>
Now that both the <a href="http://code.google.com/apis/maps/documentation/flash">API</a> and <a href="http://code.google.com/apis/maps/terms.html">Terms of Service</a> have undergone a facelift, we are releasing the first version of the API that will allow Flash/Flex developers to bring Google Maps to the AIR runtime. 
</p>
<p>
Developers who are already familiar with creating online applications with the Google Maps API for Flash will find it easy to start using the API for their AIR apps.  
Just about the only difference is the use of the <code>url</code> parameter of the map class. Developers creating normal online applications sign up for a key corresponding to the URL of the SWF, but developers creating AIR applications must sign up for a key corresponding to the URL of the page that the application can be downloaded from. While instantiating a map, AIR developers will need to provide both the key <b>and</b> that url in the <code>key</code> and <code>url</code> parameters of the map, respectively. For more information (and screenshots!), read through our <a href="http://code.google.com/apis/maps/documentation/flash/tutorial-flexbuilder.html#AIRDevelopment">snazzy new tutorial</a> on developing AIR apps in Flex Builder.
</p>
<p>
For a few examples of using the API with AIR, check out <a href="http://code.google.com/apis/maps/documentation/flash/demogallery.html?searchquery=AIR&classname=">the demo gallery</a>.  One example is the "Map CSV Parser", which is based on the <a href="http://www.adobe.com/devnet/air/flash/quickstart/building_text_editor.html">great text-file editor example</a> from the Adobe docs. This AIR app lets you open or drag a CSV file, and then it parses it into draggable markers on to the map. The new positions of the markers can be saved into the same or new CSV file on the file system. It's just a few lines of code, but should give you an idea of the kind of powerful interaction possible between a Map and a Desktop. Click the screenshot or <a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/MapTextEditor/srcview/index.html">here</a> to view and download the source for that example.
</p>
<p>
<a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/MapTextEditor/srcview/index.html">
<img style="cursor:pointer; cursor:hand;width: 400px; height: 273px;" src="http://3.bp.blogspot.com/_T1lquhCmKo8/SSNL2Ha9MyI/AAAAAAAABkM/R7_RSU7jcE0/s400/screenshot_maptexteditor_large.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5270139382030742306" />
</a>
</p>
<p>
We are looking forward to seeing your ideas and your AIR apps!  As always, please follow up with your suggestions and questions in <a href="http://groups.google.com/group/google-maps-api-for-flash?lnk=">the forum</a>.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-8786169821220629089?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/google-maps-api-for-flash-air-how-did-we-ever-breathe-before/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>2 New Articles: PHP/MySQL for the Flash API, and Custom Icon Creation with the JS API</title>
		<link>https://googledata.org/google-maps/2-new-articles-phpmysql-for-the-flash-api-and-custom-icon-creation-with-the-js-api/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2-new-articles-phpmysql-for-the-flash-api-and-custom-icon-creation-with-the-js-api</link>
		<comments>https://googledata.org/google-maps/2-new-articles-phpmysql-for-the-flash-api-and-custom-icon-creation-with-the-js-api/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 00:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


There are two recently released additions to the articles section of the documentation, for two completely different audiences. Check them out below:






  
 
Using PHP/MySQL with the Google Maps API for Flash 
 ...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>
There are two recently released additions to the articles section of the documentation, for two completely different audiences. Check them out below:
</p>
<br/>
<table>
<tr>
<td>
<div>
<a href="http://code.google.com/apis/maps/articles/phpsqlflex.html" > <img align="right" src="http://3.bp.blogspot.com/_T1lquhCmKo8/SPmrPw0MDYI/AAAAAAAABb4/QJ3pztVgEr8/s400/screenshot_phpmysqlflash.jpg" style="border:1px solid black; margin-left:10px"> 
</a> 
<strong>Using PHP/MySQL with the Google Maps API for Flash</strong> 
<br/> 
<span class="byline-author">By Pamela Fox</span> 
<p> 
Are you a developer accustomed to developing mySQL-driven websites with PHP? Do you want to learn how to use the Google Maps API for Flash with dynamically loaded data? This article goes through the steps of creating a mySQL table, populating the table with data, using PHP to generate XML from that mySQL table, and finally, writing the AS3 code to dynamically load in the PHP-generated XML and display a map with multiple markers and custom icons. After going through this tutorial, you should be ready to extend what you've learned to your own databases.
</p> 
<p><a href="http://code.google.com/apis/maps/articles/phpsqlflex.html" >Click here to read!</a></p> 
</div>
</td>
</tr>
<tr>
<td>
<div>
<a href="http://code.google.com/apis/maps/articles/customicons.html" > <img align="right" src="http://3.bp.blogspot.com/_T1lquhCmKo8/SPmrnKdPl-I/AAAAAAAABcA/Sk_k6ebSDCQ/s400/screenshot_customiconsscree.jpg" style="border:1px solid black; margin-left:10px"> 
</a> 
<strong>Creating Custom Google Maps API Icons</strong> 
<br/> 
<span class="byline-author">By Pamela Fox</span> 
 
<p> 
Are you a Photoshop junkie who wants to create the perfect GIcon for your map mashup? Are you struggling to figure out the best settings for the shadow and print images? This screencast (Flash player required) goes through the process of creating icons, covering each of the GIcon properties in detail. You can also download all the sample files (PSD/JPG/PNG/GIF) used in the screencast. After going through this screencast, you should be ready to extend what you've learned to your own crazy unique icons (Hello Kitty, anyone?).
</p> 
<p><a href="http://code.google.com/apis/maps/articles/customicons.html" >Click here to read!</a></p> 
</div>
</td>
</tr>
</table>

<p>
The articles section now also includes links to a few external articles that we found really useful: <a href="http://gvlt.wordpress.com/2008/05/17/tutorial-thematic-mapping-with-the-google-maps-flash-api/">Thematic Mapping with the Google Maps API for Flash</a>, and <a href="http://webtide.wordpress.com/2008/08/27/custom-google-maps/">Creating Custom Campus Maps using the Google Maps API</a>. If you've written an article about the Google Maps API that you think would benefit developers reading our documentation, please <a href="mailto:api.pamelafox@google.com">let us know</a>.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-1783606590784091688?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/2-new-articles-phpmysql-for-the-flash-api-and-custom-icon-creation-with-the-js-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Geocoding&#8230; in Reverse!</title>
		<link>https://googledata.org/google-maps/geocoding-in-reverse/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=geocoding-in-reverse</link>
		<comments>https://googledata.org/google-maps/geocoding-in-reverse/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 22:50:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


One of the first concepts I explain to developers that are new to mapping APIs is geocoding: the process of converting an address into a latitude/longitude pair. Approximately 99.9% of developers will have to use a...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>
One of the first concepts I explain to developers that are new to mapping APIs is geocoding: the process of converting an address into a latitude/longitude pair. Approximately 99.9% of developers will have to use a geocoder before they can get their data onto a map, and to let users of their map locate themselves. Thankfully, we offer both the <a href="http://code.google.com/apis/maps/documentation/services.html#Geocoding_Direct">HTTP Geocoding service</a> for server-side geocoding (the former), and the <a href="http://code.google.com/apis/maps/documentation/reference.html#GClientGeocoder">GClientGeocoder</a> class for client-side geocoding (the latter).
</p>
<p>
Now, let me introduce the more advanced topic of reverse geocoding: the process of converting a latitude/longitude pair into an address. A much smaller (but important) percentage of developers will want to use a reverse geocoder to let their map users know the address for a particular point on the map, perhaps to help them fill in a form faster (why type when you can click?!). For those developers, we're now pleased to offer address-level reverse geocoding support to both our HTTP service and the GClientGeocoder class. To make it super easy to use, the interface for reverse geocoding is nearly the same as forward geocoding - the only difference is sending in a lat/lng instead of an address. Here's a code snippet for doing client-side reverse geocoding, taken from <a href="http://gmaps-samples.googlecode.com/svn/trunk/geocoder/reverse.html">this sample</a>:
</p>
<pre class="code">
geocoder.getLocations(latlng, function(addresses) {
  if(addresses.Status.code != 200) {
    alert("reverse geocoder failed to find an address for " + latlng.toUrlValue());
  } else { 
    var result = addresses.Placemark[0];
    map.openInfoWindow(latlng, result.address);
  }
});
</pre>

<p>
As a live demo of the reverse geocoder, check out <a href="http://meetways.com/">MeetWays</a>, a site that mashes up the Google AJAX Local Search API with the Google Maps API and just a bit of math. It calculates the point between two addresses on the map, uses the reverse geocoder to find out the address for that point, and then does a local search near that address to find places to meet that are halfway between. Since reverse geocoding works in all the places that forward geocoding works, then you should be able to meet up with your friends in more than <a href="http://gmaps-samples.googlecode.com/svn/trunk/mapcoverage_filtered.html">70 countries</a>. 
</p>

<a href="http://meetways.com/">
<img src="http://3.bp.blogspot.com/_T1lquhCmKo8/SP-1QN-50FI/AAAAAAAABcc/gx51SoBYd60/s400/screenshot_meetways.jpg" alt="screenshot of Meetways" />
</a>

<p>
For more information on this new service, read through the <a href="http://code.google.com/apis/maps/documentation/reference.html#GClientGeocoder">reference</a> and <a href="http://gmaps-samples.googlecode.com/svn/trunk/geocoder/reverse.html">sample code</a>. We'd love to see the ways that developers will use the reverse geocoder, so please post a link to your reverse geocoding demo or website in <a href="http://groups.google.com/group/Google-Maps-API">the forum</a>. Now go forth and reversify!
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-6847214822519004811?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/geocoding-in-reverse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Calling All Flash Developers: No, Really This Time!</title>
		<link>https://googledata.org/google-maps/calling-all-flash-developers-no-really-this-time/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=calling-all-flash-developers-no-really-this-time</link>
		<comments>https://googledata.org/google-maps/calling-all-flash-developers-no-really-this-time/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 05:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


Back when we announced the "Google Maps API for Flash" in May, there were a large amount of Flash CS3 developers who were miffed at our lack of support for using the API in their favorite program, and quickly made ...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>
Back when we announced the "Google Maps API for Flash" in May, there were a large amount of Flash CS3 developers who were miffed at our lack of support for using the API in their favorite program, and quickly made <a href="http://code.google.com/p/gmaps-api-issues/issues/detail?id=329">"Flash CS3 Support"</a> the second most starred feature request -- and there was even one developer named Vincent who managed to get our SWC running in CS3 who quickly became a one-man support desk for his hack. Well, Vincent, it's time to take a vacation, and CS3 Developers, it's time to get to work. The 1.7 SWC can now <b>officially</b> be used as a Flash CS3 Component, and the documentation now includes a snazzy <a href="http://code.google.com/apis/maps/documentation/flash/tutorial-flash.html">screenshot-filled tutorial</a> about creating your first map in Flash CS3.</p>

<table>
<tr>
<td>
<p>
To show that off, I made the kind of demo that one can only truly be done in Flash - a Google-ified re-envisionment of a scene from my all-time favorite movie, Puff the Magic Dragon. Click the screenshot to check it out.
</p>
<p>
<b>Warning:</b> Watch <a href="http://www.youtube.com/watch?v=R6wJqdnMUEk">this scene (5:20)</a> first if you've never seen the movie, or you'll think I'm a bit crazy. I mean, you might think so anyway. But still.
</p>
</td>
<td>
<a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/CrazySeaDemo/crazysea.html"><img src="http://gmaps-samples-flash.googlecode.com/svn/trunk/images/screenshot_crazysea.jpg" align="right"/></a>
</td>
</tr>
<tr>
<td>
Now — before Flex developers think that we've forgotten about them — I've got more news. The 1.7 SDK now includes a special SWC for Flex developers, and the documentation includes tutorials for creating your first Map with this SWC in both <a href="http://code.google.com/apis/maps/documentation/flash/tutorial-flex.html">Flex SDK</a> and <a href="http://code.google.com/apis/maps/documentation/flash/tutorial-flexbuilder.html">Flex Builder</a>.  Using this SWC means that you can set up the map as a custom Flex component, and then use any Flex components on the map in controls, info windows, markers, etc (something that was previously not possible). To show that off, I made a demo that embeds a TabNavigator inside an info window to make tabbed info windows. Click the screenshot to check it out.
</td>
<td>
<a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/TabNavigatorInfoWindow/TabNavigatorInfoWindow.html"><img src="http://gmaps-samples-flash.googlecode.com/svn/trunk/images/screenshot_tabnavigatorinfo.jpg" ></a>
</td>
</tr>
</table>

<p>
And there are a few extra features for everyone, like TileLayerOverlay, ScaleControl, Geodesic Polylines, Walking Directions. Check out the <a href="http://code.google.com/apis/maps/documentation/flash/demogallery.html">demo gallery</a> for examples of those, and read the docs for more information. Enjoy 1.7, and let us know in <a href="http://groups.google.com/group/google-maps-api-for-flash">the forum</a> how you're using the API or if you have questions.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-3142153607285235334?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/calling-all-flash-developers-no-really-this-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2 lines of code make the world a more beautiful, informational place!</title>
		<link>https://googledata.org/google-maps/2-lines-of-code-make-the-world-a-more-beautiful-informational-place/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2-lines-of-code-make-the-world-a-more-beautiful-informational-place</link>
		<comments>https://googledata.org/google-maps/2-lines-of-code-make-the-world-a-more-beautiful-informational-place/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 22:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team

Back in May, we released a feature in Google Maps that let users toggle on additional "layers" of information on top of the map, starting with Panoramio and Wikipedia options. Both of these layers display thousands ...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>
<p>
Back in May, we released a feature in Google Maps that let users toggle on additional "layers" of information on top of the map, starting with Panoramio and Wikipedia options. Both of these layers display thousands of variably sized icons on top of the map, and open info windows with more information about the clicked icon. So the user might click <a href="http://maps.google.com/maps?f=q&hl=en&geocode=&q=new+york+ny&ie=UTF8&ll=40.751256,-73.985732&spn=0.012955,0.021887&t=h&z=16&iwloc=9584147106810790021&lci=lmc:wikipedia_en">a large "W" in New York</a> to read a snippet from Wikipedia's article about the Empire State Building, or they might click on <a href="http://maps.google.com/maps?f=q&hl=en&geocode=&q=burning+man&sll=39.01665,-112.495365&sspn=13.594731,22.412109&ie=UTF8&filter=0&ll=40.769427,-119.2202&spn=0.051808,0.087547&t=h&z=14&lci=lmc:panoramio">a thumbnail in Black Rock City</a> to see a photo of a Burning Man Temple.
</p>
<p>
Now, for those of you who want to easily enable these layers on your map (or through a custom control), you can create a new <a href="http://code.google.com/apis/maps/documentation/reference.html#GLayer">Layer object</a> with the specified layer ID, and then add that to the map as an overlay. Check out the sample code and <a href="http://gmaps-samples.googlecode.com/svn/trunk/layers/simplelayers.html">demo</a> below, and read through <a href="http://code.google.com/apis/maps/documentation/overlays.html#Layers">the docs</a> for more info:
</p>
<pre class="code">
map.addOverlay(new GLayer("com.panoramio.all"));
map.addOverlay(new GLayer("org.wikipedia.en"));
</pre>

<iframe src="http://gmaps-samples.googlecode.com/svn/trunk/layers/simplelayers.html" frameborder="0" width="570" height="470"></iframe>

<p>
Note: There are localized versions of the Wikipedia layers available in many languages. These will not be automatically served to users based on browser setting, so you should explicitly add those if your map is targeted at a local audience. See <a href="http://spreadsheets.google.com/pub?key=p9pdwsai2hDN-cAocTLhnag">this spreadsheet</a> for a full list of IDs.
</p>
<p>
For those of you developers wondering how these layers are able to display so many icons without slowing the browser down, here's some inside info for you. The layers are actually implemented as GTileLayerOverlays, where the tiles are just transparent PNGs with icons baked into them. The clickability of the layer is achieved by passing information about the clickable pixel bounds of each tile to the client, then doing a client-side check to figure out which bounds the cursor is inside on the map mousemove and click events, and changing the cursor or popping up the appropriate info window. If you're interested in implementing a similar solution for your own thousand-markered mashups, check out John Coryat's <a href="http://code.google.com/apis/maps/documentation/demogallery.html?searchquery=clickable%20tile">clickable tilelayer demo</a> in the demo gallery, or the various <a href="http://code.google.com/apis/maps/documentation/mediagallery.html">presentations</a> on creating custom maps.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-2755580052499074664?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/2-lines-of-code-make-the-world-a-more-beautiful-informational-place/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Walking Directions + Avoid Highways = My Kind Of Driving!</title>
		<link>https://googledata.org/google-maps/walking-directions-avoid-highways-my-kind-of-driving/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=walking-directions-avoid-highways-my-kind-of-driving</link>
		<comments>https://googledata.org/google-maps/walking-directions-avoid-highways-my-kind-of-driving/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 23:45:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted Pamela Fox, Maps API Team

Back when I was attending high school in Syracuse, NY, I did the typical teenager thing and learned how to drive a car. Syracuse is a (relatively) large city in the middle of upstate NY, so getting from point A to poin...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted Pamela Fox, Maps API Team</span>

<p>Back when I was attending high school in Syracuse, NY, I did the typical teenager thing and learned how to drive a car. Syracuse is a (relatively) large city in the middle of upstate NY, so getting from point A to point B could either mean driving down winding country roads and passing by Llama Farms (true story) or driving on multiple highways to get to our nearly-biggest-mall-in-America/most-polluted-lake-in-NY (yep, its at the same location.. go city planners!). 
</p>
<p>
I quickly learned that I loved country roads (who doesn't like llamas??) and hated highways, but since everyone around me were highway-lovers, it was near impossible to get directions to places that didn't involve highways. So that's where Google Maps, and now the Google Maps API, becomes my new best friend. By specifying <code>avoidHighways</code> in <code><a href="http://code.google.com/apis/maps/documentation/reference.html#GDirectionsOptions">GDirectionsOptions</a></code>, I can find a route that avoids highways. Click the screenshot below to check it out.
</p>
<br/>
<a href="http://gmaps-samples.googlecode.com/svn/trunk/gdirections/directions-nohighways.html"><img src="http://4.bp.blogspot.com/_T1lquhCmKo8/SNqmT5UcFtI/AAAAAAAABMo/OstUKqcFDkw/s400/screenshot_avoidhighways.jpg"/>
</a>

<p>
<b>Fast forward 5 years:</b> I've moved to the bay area to start my job at Google, and I realize that there aren't really many country roads left, and pretty much all routes involve either a highway or intersections. I should probably mention that I eventually learned in Syracuse that I hate intersections: left turns, right turns, they all freak the gajeezus out of me. So I decided that I'd walk everywhere possible, and seek housing in highly <a href="http://walkscore.com">walkable areas</a>. So once again, that's where Google Maps and the API help me out. By specifying <code><a href="http://code.google.com/apis/maps/documentation/reference.html#GDirectionsOptions">G_TRAVEL_MODE_WALKING</a></code> in <code><a href="http://code.google.com/apis/maps/documentation/reference.html#GDirectionsOptions">GDirectionsOptions</a></code>, I can get <a href="http://google-latlong.blogspot.com/2008/07/pound-pavement.html">walking directions</a> from my apartment to the nearest "beverage" store. Click the screenshot below to check it out.
</p>
<br/>
<a href="http://gmaps-samples.googlecode.com/svn/trunk/gdirections/directions-walking.html">
<img src="http://1.bp.blogspot.com/_T1lquhCmKo8/SNqqGpNGtFI/AAAAAAAABM4/eT8zjQSb1jU/s400/screenshot_walking.jpg"/>
</a>
<p>
<b>Note:</b> Since walking directions may sometimes not include clear pedestrian paths, we need to make sure that your users take caution when using them. So, walking directions are only supported if you have supplied a &lt;div&gt; in the <code>GDirections</code> constructor; this &lt;div&gt; is used to display a warning to the user in the turn-by-turn textual directions. 
</p>
<p>
If that piqued your interest, read through the updated <a href="http://code.google.com/apis/maps/documentation/services.html#TravelModes">Developer's Guide</a> and <a href="http://code.google.com/apis/maps/documentation/reference.html#GDirectionsOptions">API Reference</a>. As always, post in <a href="http://groups.google.com/group/Google-Maps-API/">the forum</a> with any questions you may have.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-6025177462190716369?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/walking-directions-avoid-highways-my-kind-of-driving/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Open-Sourced Goodies for your Flash Maps: KMLParser, MarkerManager, and Planetary MapTypes</title>
		<link>https://googledata.org/google-maps/open-sourced-goodies-for-your-flash-maps-kmlparser-markermanager-and-planetary-maptypes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=open-sourced-goodies-for-your-flash-maps-kmlparser-markermanager-and-planetary-maptypes</link>
		<comments>https://googledata.org/google-maps/open-sourced-goodies-for-your-flash-maps-kmlparser-markermanager-and-planetary-maptypes/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 18:56:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


Sometimes there's functionality that's ridiculously useful for a niche group of developers, and completely unnecessary for others. That's the kind of functionality that's now available in our brand spanking new "Go...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>
Sometimes there's functionality that's ridiculously useful for a niche group of developers, and completely unnecessary for others. That's the kind of functionality that's now available in our brand spanking new <a href="http://code.google.com/p/gmaps-utility-library-flash/">"Google Maps API for Flash Utility Library" open-source project</a>, and is ready for developers to use, modify, and even improve.
</p>

<p>Our 3 inaugural libraries are:</p>

<table>
<tr>
<td>
<img src="http://gmaps-samples-flash.googlecode.com/svn/trunk/images/screenshot_markermanagerdemo.jpg"/>
</td>
<td>
<b>MarkerManager:</b> This library is an AS3 port of the MarkerManager in the JS open-source library. It enables developers to easily manage markers per zoom level/viewport, and is commonly combined with clustering. Though Flash is natively better at rendering large amounts of markers, developers have reported increased performance when using the MarkerManager with thousands of markers.
</td>
</tr>
<tr>
<td>
<img src="http://gmaps-samples-flash.googlecode.com/svn/trunk/images/screenshot_kmlparser.jpg"/>
</td>
<td>
<b>KML Parser:</b> This library parses a KML file into objects representing the KML DOM, and includes helper code for turning them into map objects (Marker, Polygon, GroundOverlay, etc) and creating a sidebar using the Tree list Flex component. Note that this class ignores elements and attributes that can't be rendered in the Maps API for Flash.
</td>
</tr>
<tr>
<td>
<img src="http://gmaps-samples-flash.googlecode.com/svn/trunk/images/screenshot_custommapmars.jpg" />
</td>
<td>
<b>Planetary MapTypes:</b> This library contains map types for Mars, Sky, and Moon, and is a port of all the non-earth map types available in the JS API. This will help you make your maps application out of this world.
</td>
</tr>
</table>

<p>
To check out the docs and demos for each library, visit our <a href="http://code.google.com/p/gmaps-utility-library-flash/wiki/Libraries">Libraries wiki</a>. If you end up using any of the libraries for your own projects, please let us know in the <a href="http://groups.google.com/group/google-maps-api-for-flash-utility-library-group">forum</a>.
</p>

<p> For information on contributing patches or libraries to the project, visit our <a href="http://code.google.com/p/gmaps-utility-library-flash/wiki/FrequentlyAskedQuestions">FAQ</a>. To all of you talented AS3 developers (I know you're out there; I've seen you in the group!), I hope that you consider adding to our central repository of helpful add-ons for the Maps API for Flash. 
</p>

<p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-7724300661490142199?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/open-sourced-goodies-for-your-flash-maps-kmlparser-markermanager-and-planetary-maptypes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You wanted other map types in the Static Maps API? You got it!</title>
		<link>https://googledata.org/google-maps/you-wanted-other-map-types-in-the-static-maps-api-you-got-it/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=you-wanted-other-map-types-in-the-static-maps-api-you-got-it</link>
		<comments>https://googledata.org/google-maps/you-wanted-other-map-types-in-the-static-maps-api-you-got-it/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 00:32:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


So, it appears that a few thousand of you developers were sending our static map server requests with "&#038;maptype=satellite" in them. Why would you do that? Did you think that we'd see all the requests and just decid...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>
So, it appears that a few thousand of you developers were sending our static map server requests with "&maptype=satellite" in them. Why would you do that? Did you think that we'd see all the requests and just decide to start returning satellite imagery to you? Well, fine. You were right. Here you go:
</p>
<br/>
<img src="http://maps.google.com/staticmap?center=27.87515,86.871815&zoom=10&size=500x100&maptype=satellite&key=ABQIAAAA-O3c-Om9OcvXMOJXreXHAxRexG7zW5nSjltmIc1ZE-b8yotBWhQYQEU3J87QIBc4nfuySpoW_K6woA" alt="satellite static map"/>
<br/>
<a href="http://maps.google.com/staticmap?center=27.87515,86.871815&zoom=10&size=500x100&maptype=satellite&key=ABQIAAAA-O3c-Om9OcvXMOJXreXHAxRexG7zW5nSjltmIc1ZE-b8yotBWhQYQEU3J87QIBc4nfuySpoW_K6woA">
http://maps.google.com/staticmap?center=27.87515,86.871815&zoom=10&size=500x100&maptype=satellite
</a>
<br/>
(Mount Everest looks significantly more interesting from satellite view than map view; I hear it's hard to build roads there.)
<br/>
<p>
And just to anticipate those of you who are thinking to yourself about what a mighty fine plan that was, and how you're going to start sending "&maptype=hybrid" and "&maptype=terrain", here, have those map types too:
</p>
<br/>
<img src="http://maps.google.com/staticmap?center=27.87515,86.871815&zoom=10&size=500x100&maptype=hybrid&key=ABQIAAAA-O3c-Om9OcvXMOJXreXHAxRexG7zW5nSjltmIc1ZE-b8yotBWhQYQEU3J87QIBc4nfuySpoW_K6woA" alt="hybrid static map"/>
<br/>
<a href="http://maps.google.com/staticmap?center=27.87515,86.871815&zoom=10&size=500x100&maptype=hybrid&key=ABQIAAAA-O3c-Om9OcvXMOJXreXHAxRexG7zW5nSjltmIc1ZE-b8yotBWhQYQEU3J87QIBc4nfuySpoW_K6woA">
http://maps.google.com/staticmap?center=27.87515,86.871815&zoom=10&size=500x100&maptype=hybrid
</a>
<br/>

<img src="http://maps.google.com/staticmap?center=27.87515,86.871815&zoom=10&size=500x100&maptype=terrain&key=ABQIAAAA-O3c-Om9OcvXMOJXreXHAxRexG7zW5nSjltmIc1ZE-b8yotBWhQYQEU3J87QIBc4nfuySpoW_K6woA" alt="terrain static map"/>
<br/>
<a href="http://maps.google.com/staticmap?center=27.87515,86.871815&zoom=10&size=500x100&maptype=terrain&key=ABQIAAAA-O3c-Om9OcvXMOJXreXHAxRexG7zW5nSjltmIc1ZE-b8yotBWhQYQEU3J87QIBc4nfuySpoW_K6woA">
http://maps.google.com/staticmap?center=27.87515,86.871815&zoom=10&size=500x100&maptype=terrain
</a>
<br/>
<p>
Okay? Happy now?? Statistically, many developers should be &mdash; since "add other map types" has been our <a href="http://code.google.com/p/gmaps-api-issues/issues/detail?id=201">top starred static maps feature request</a> in the public issue tracker since the launch of the Static Maps API. 
</p>
<p>
So check out the <a href="http://code.google.com/apis/maps/documentation/staticmaps/#MapTypes">documentation</a> and start using the new map types for your thumbnail maps, mobile maps, or any of the other reasons we mentioned in <a href="http://googlegeodevelopers.blogspot.com/2008/07/5-ways-to-use-static-maps-plus-new.html">our last static maps post</a>.  You can also check out the other goodies in this release in the <a href="http://code.google.com/p/gmaps-api-issues/wiki/StaticMapsAPIChangelog">Static Maps API changelog</a>. Enjoy, and let us know in the <a href="http://groups.google.com/group/Google-Maps-API/browse_thread/thread/0a72a55c3c6498df">forum</a> if you have any questions (or just nifty examples to share with us).
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-2060605934872260831?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/you-wanted-other-map-types-in-the-static-maps-api-you-got-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MapIconMaker 1.1: Create Dynamic Flat and Labeled Icons!</title>
		<link>https://googledata.org/google-maps/mapiconmaker-1-1-create-dynamic-flat-and-labeled-icons/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mapiconmaker-1-1-create-dynamic-flat-and-labeled-icons</link>
		<comments>https://googledata.org/google-maps/mapiconmaker-1-1-create-dynamic-flat-and-labeled-icons/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 21:50:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


In the first release of MapIconMaker, we gave developers the ability to create dynamically resized and colored marker-shaped icons. Now with the second version, we're adding two entirely new types of customizable i...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>
In <a href="http://googlemapsapi.blogspot.com/2008/03/iconfactory-10-easy-way-to-make-your.html">the first release</a> of MapIconMaker, we gave developers the ability to create dynamically resized and colored marker-shaped icons. Now with the second version, we're adding two entirely new types of customizable icons. The table below (stolen blatantly from the <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/mapiconmaker/1.1/docs/examples.html">documentation</a>) compares the three available functions. To get more of a feel for everything that's possible with all the icons, play around with the updated <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/mapiconmaker/1.1/examples/markericonoptions-wizard.html">wizard</a>. 
</p>
<br/>
<table style="border:1px solid blue">
<tbody><tr>
 <td>

  <strong>createFlatIcon</strong>
 </td>
 <td>
  The icons can be dynamically sized and colored, can be either circular or rectangular in shape, and can have text overlaid on them. They will appear to lie 'flat' on the map because of their shape.
  <br>
  <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/mapiconmaker/1.1/examples/createflaticon-simple.html">View example (createflaticon-simple.html).</a>
 </td><td align="center">
  <img src="http://chart.apis.google.com/chart?cht=it&amp;chs=48x48&amp;chco=33FF33,000000ff,ffffff01&amp;chl=a&amp;chx=000000,0&amp;chf=bg,s,00000000&amp;ext=.png">

 </td>
</tr>
<tr>
 <td>
  <strong>createLabeledMarkerIcon</strong>
 </td>
 <td>
  The icons can be dynamically colored and can have text overlaid on them, but can only be one shape and size (marker-shape, 32*32). They can optionally have a dynamically colored star attached to the corner.
  <br>
  <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/mapiconmaker/1.1/examples/createlabeledmarkericon-simple.html">View example (createlabeledmarkericon-simple.html).</a>

 </td><td align="center">
  <img src="http://chart.apis.google.com/chart?cht=d&amp;chdp=mapsapi&amp;chl=pin_star%27i%5C%27%5Ba%27-2%27f%5Chv%27a%5C%5Dh%5C%5Do%5C33FF33%27fC%5C000000%27tC%5C000000%27eC%5CFFFF00%271C%5C0000FF%270C%5CLauto%27f%5C">
 </td>
</tr>
<tr>
 <td>
  <strong>createMarkerIcon</strong>
 </td>
 <td>

  The icons can be dynamically sized and colored, but cannot have any text overlaid on them. 
  <br>
  <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/mapiconmaker/1.1/examples/createmarkericon-simple.html">View example (createmarkericon-simple.html).</a>
 </td><td align="center">
  <img src="http://chart.apis.google.com/chart?cht=mm&amp;chs=48x48&amp;chco=FFFFFF,FF0000,000000&amp;ext=.png">
 </td>
</tr>
</tbody></table>

<p>As a demo of what kind of maps are possible with the new icons, I've created a gadget that uses the <a href="http://code.google.com/apis/visualization/documentation/spreadsheets.html">Visualization API</a> to pull rows of U.S. address data from a <a href="http://spreadsheets.google.com/pub?key=p9pdwsai2hDOyoGmDdY9mTA&gid=0">Google Spreadsheet</a>, clusters the rows based on what state code I find in the address (yay for RegEx!), and then creates icons for each state cluster that are dynamically sized and labeled according to the size of the cluster. As an added touch, I overlay a transparent state polygon on marker mouseover, and I change the color of the marker and polygon on marker click. Much thanks to the <a href="http://www.google.com/intl/en/trends/elections/">2008 Election Trends</a> map for inspiring the UI and making its code and <a href="http://cqueries.googlecode.com/svn/trunk/js/geary_states.js">states data</a> available. 
</p>

<p>
Check out the demo map below, and if you're inspired yourself, read through the MapIconMaker <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/mapiconmaker/1.1/docs/reference.html">reference</a> and <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/mapiconmaker/1.1/docs/examples.html">documentation</a> (or <a href="http://gmaps-utility-library.googlecode.com/svn/trunk/mapiconmaker/1.1/src/">code </a>- it's open source!).
</p>

<br/>

<iframe id='I2' src='http://o9uaiufk-a.gmodules.com/ig/ifr?up__table_query_url=http%3A%2F%2Fspreadsheets.google.com%2Ftq%3Frange%3DA1%253AF171%26headers%3D1%26gid%3D0%26key%3Dp9pdwsai2hDOyoGmDdY9mTA%26pub%3D1&up__table_query_refresh_interval=0&url=http%3A%2F%2Fimagine-it.org%2Fgoogle%2Fstateclusterer.xml%3Fnocache%3D1&mid=2&nocache=1&synd=spreadsheets' width='600' height='420' frameborder='0' scrolling='no' style=''>Click through to see the gadget.</iframe><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-3972387128691174097?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/mapiconmaker-1-1-create-dynamic-flat-and-labeled-icons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Load Your User&#8217;s Location on the Map!</title>
		<link>https://googledata.org/google-maps/load-your-users-location-on-the-map/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=load-your-users-location-on-the-map</link>
		<comments>https://googledata.org/google-maps/load-your-users-location-on-the-map/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 23:55:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team


A lot of map mashups out there have country-wide or world-wide content. That's awesome because it means there's something for everyone. What's not so awesome is that it means that when I get to the map, I often hav...]]></description>
				<content:encoded><![CDATA[<font class="post-author">Posted by Pamela Fox, Maps API Team</font>

<p>
A lot of map mashups out there have country-wide or world-wide content. That's awesome because it means there's something for everyone. What's not so awesome is that it means that when I get to the map, I often have to spend some time panning and zooming until I'm in my hometown and seeing the local content I'm most interested in. And as you know from previous posts, I'm inherently lazy and get bored whenever I'm forced to engage in unnecessary mouse movement. Wouldn't it be better if the map could automatically center to my location without me lifting one of my precious fingers? The answer is yes, and now it's easier to do than ever with the introduction of IP-based location information in the AJAX APIs framework.
</p>
<p>
To add user-based centering to your map mashup, follow the steps below.
</p>
<ol>
<li>If not using it already, include a <code>&lt;script&gt;</code> tag for the AJAX APIs common loader. Call <code>google.load("maps", "2")</code>.</li>
<li>Once the Maps API has loaded, check if the google.loader.ClientLocation object has been defined. If so, you can use the latitude/longitude and city/state/country information from it to center the map and display the sensed location to the user.</li>
<li>If the ClientLocation object is null, just center your map as always. Not all IPs can be located, so you'll want a good fallback behavior.</li>
</ol>
<p>Check out the example implementation below, but feel free to make your own implementation snazzier (perhaps by adding a <code>GControl</code> to let the user easily jump to  their location):</p>
<iframe src="http://gmaps-samples.googlecode.com/svn/trunk/clientlocation/clientlocation.html" frameborder="0" height="350" width="550">&amp;amp;amp;lt;br&amp;amp;amp;gt;&amp;amp;amp;lt;a href="http://gmaps-samples.googlecode.com/svn/trunk/clientlocation/clientlocation.html"&amp;amp;amp;gt;Link to ClientLocation example&amp;amp;amp;lt;/a&amp;amp;amp;gt;&amp;amp;amp;lt;br&amp;amp;amp;gt;</iframe>

<p>
For more information, read the docs on <a href="http://code.google.com/apis/maps/documentation/#AJAX_Loader">using the AJAX Loader</a> and <a href="http://code.google.com/apis/ajax/documentation/#ClientLocation">using ClientLocation</a>, or post in the <a href="http://groups.google.com/group/Google-AJAX-Search-API">AJAX APIs group</a> with questions. If you're developing a mobile website and want a more precise location for your users, check out the <a href="http://code.google.com/apis/gears/api_geolocation.html">GeoLocation</a> module in Gears.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-7196000129219938171?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/load-your-users-location-on-the-map/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Do You Speak Selenese? Contribute to our Maps API Tests!</title>
		<link>https://googledata.org/google-maps/do-you-speak-selenese-contribute-to-our-maps-api-tests/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=do-you-speak-selenese-contribute-to-our-maps-api-tests</link>
		<comments>https://googledata.org/google-maps/do-you-speak-selenese-contribute-to-our-maps-api-tests/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 22:34:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Aviv, Maps API Team


Before we release a new version of the Maps API, we always run it through a huge bank of tests to make sure standard functionality is working. But one thing we've realized since releasing the Maps API and watching its ad...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Aviv, Maps API Team</span>

<p>
Before we release a new version of the Maps API, we always run it through a huge bank of tests to make sure standard functionality is working. But one thing we've realized since releasing the Maps API and watching its adoption is that it can be used in ways that we never imagined - and subsequently, ways we never thought to test.
</p>
<p>
So we figured the best solution would just be to let you, the creative developers, tell us exactly what functionality you want tested - by adding your own tests. We've open sourced our integration tests and are now ready to accept contributions. Our infrastructure allows us to run these tests on the stable, current, and bleeding edge versions of the API, so that potential problems can be discovered long before they are out in the wild.
</p>
<p>
The tests we have released use <a href="http://selenium.openqa.org/">Selenium</a>. Selenium is an open source tool for automating tests of human-browser interaction. It runs in a range of browsers, so by its very nature it takes into account browser discrepancies. As an added benefit, developers can run tests by simply <a href="http://gmaps-api-issues.googlecode.com/svn/trunk/selenium/core/TestRunner.html?test=../tests/examples_stable_suite.html">going to a url</a> and clicking a 'run' button! 
</p>
<p>
The screenshot below shows our basic test running (and passing, whee!):
</p>
<p>
<img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_T1lquhCmKo8/SKtRRv4tJZI/AAAAAAAABDk/1Um27S6eZa4/s400/Screenshot_selenium_small.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5236368357102265746" />
</p>
<p>
Note that we have hundreds of non-Selenium unit tests for expected functionality, but we're not releasing those just yet as they're more tightly coupled with Google infrastructure.
 </p>
<p>
For information on running and contributing tests, read the <a href="http://code.google.com/p/gmaps-api-issues/wiki/SeleniumTests">project wiki</a>. Thanks for reading, and we look forward to your contributions.
</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-5137546579203590968?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/do-you-speak-selenese-contribute-to-our-maps-api-tests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Flash Developers Need Some Direction in Life Too</title>
		<link>https://googledata.org/google-maps/flash-developers-need-some-direction-in-life-too/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=flash-developers-need-some-direction-in-life-too</link>
		<comments>https://googledata.org/google-maps/flash-developers-need-some-direction-in-life-too/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 21:30:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Scott Kilpatrick, Maps API Team



Good arvo from Sydney, Australia, where it's beautiful even in the dead of winter and the people use contrived abbreviations for literally everything. I kid, I kid. Australia is great, and the vegemite is ev...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Scott Kilpatrick, Maps API Team</span>

<p>
<img style="float:left; width:67px; height:89px; cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_T1lquhCmKo8/SKnp6dw2hyI/AAAAAAAABDA/PRNpahuIpBQ/s400/blog_photo_1.jpg" border="0"/>
<a href="http://aussieslang.com/">Good arvo</a> from Sydney, Australia, where it's beautiful even in the dead of winter and the people use contrived abbreviations for literally everything. I kid, I kid. Australia is great, and the vegemite is even greater. I've spent my winter internship (also called a "summer internship" for my compatriots above the Equator) working on the Google Maps API for Flash, which was <a href="http://googlemapsapi.blogspot.com/2008/05/introducing-google-maps-api-for-flash.html">released back in May</a>. If you're like me, you might think that Flash is a tool for creating amateur cartoons of questionable legality after school. Friends, I assure you -- it's so much more.</p>
<p>JavaScript developers have reaped the benefits of <a href="http://googlemapsapi.blogspot.com/2007/05/driving-directions-support-added-to.html">driving directions in the Google Maps API</a> for over a year now, but without them Flash developers have endured three long months of repeatedly getting lost. As someone who accidentally drove into Oklahoma for well over an hour before realizing that his roadtrip only involved Texas, I feel your pain, Flash folk. But worry no longer, for I bring good news. It has been my pleasure to rectify this disorientation dilemma and bring the enormous utility of driving directions to our Maps API for Flash, starting with version 1.6.</p>

<p>The interface for the <a href="http://code.google.com/apis/maps/documentation/flash/services.html#Driving_Directions">Flash API's Directions class</a> closely resembles that of the <a href="http://code.google.com/apis/maps/documentation/services.html#Driving_Directions">JS API's GDirections class</a>. You still create a <a href="http://code.google.com/apis/maps/documentation/flash/reference.html#Directions">Directions</a> object, optionally listen for load/fail events on it, and then call the <a href="http://code.google.com/apis/maps/documentation/flash/reference.html#Directions.load">load()</a> method with a directions query. The Directions object contains all the response information as <a href="http://code.google.com/apis/maps/documentation/flash/reference.html#Route">Route</a> and <a href="http://code.google.com/apis/maps/documentation/flash/reference.html#Step">Step</a> objects, also like the JS API. The awesome thing about Flash is that you can then include all sorts of animations and movie clips to complement the directions in your application. Consider the following application which uses a penguin to show you how to get from the <a href="http://www.google.com.au/search?q=alamo%20drafthouse%20austin">Alamo Drafthouse movie theater</a> to <a href="http://www.google.com.au/search?q=waterloo+records+austin">Waterloo Records</a> in Austin:
</p>
<br/><br/>
<IFRAME src="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/PenguinDirectionsDemo/PenguinDirectionsDemo.html" frameborder="0" width="100%" height="400">
<a href="http://gmaps-samples-flash.googlecode.com/svn/trunk/demos/PenguinDirectionsDemo/PenguinDirectionsDemo.html">Link to Penguin Directions Demo</a>
</iframe>
<br/>
<p>Sure you could probably whip that up in a JavaScript application, but envision this scenario: an animated car traverses the route of your roadtrip; your videos are overlaid onto the map at their original shooting locations; and your meticulously selected playlist of driving music plays chronologically in the background. And that, my friends, is the power of Flash.</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-5183278834728159540?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/flash-developers-need-some-direction-in-life-too/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Using Google Maps to Visualize ArcGIS Data &amp; Services</title>
		<link>https://googledata.org/google-maps/using-google-maps-to-visualize-arcgis-data-services/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=using-google-maps-to-visualize-arcgis-data-services</link>
		<comments>https://googledata.org/google-maps/using-google-maps-to-visualize-arcgis-data-services/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 21:29:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Sterling Quinn, ESRI Developer


Hi, I’m Sterling Quinn and I work on the development team for server-based GIS technologies at ESRI in Redlands, California. We’re happy to report that ESRI software users can now expose their GIS in Googl...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Sterling Quinn, ESRI Developer</span>

<p>
Hi, I’m Sterling Quinn and I work on the development team for server-based GIS technologies at ESRI in Redlands, California. We’re happy to report that ESRI software users can now expose their GIS in Google Maps through the recently-released <a href="http://resources.esri.com/arcgisserver/apis/javascript/gmaps/index.cfm?fa=home">ArcGIS JavaScript Extension for the Google Maps API</a>. The extension is built on the Google Maps API and is designed to communicate with <a href="http://resources.esri.com/arcgisserver">ArcGIS Server</a>, ESRI’s product for serving GIS functionality on the Web.</p>
<p>The ArcGIS JavaScript Extension for the Google Maps API allows you to maintain the user-friendly front end of Google Maps while tapping into an advanced GIS on the back end. You can use the extension to display your own maps on top of Google’s, query features in your database and display them on the map, or expose tasks that run GIS analysis models on the server. You can display your results using the Google Maps API’s native graphics engine and info windows.</p>
<p>To learn how to use the ArcGIS JavaScript Extension for the Google Maps API, use the <a href="http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/gmaps/help/google_start.htm">online SDK</a>, which contains basic concepts, an API reference, and examples of how to create custom maps and Mapplets. The examples contain detailed descriptions on how to do things like <a href="http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/gmaps/help/topics/samples/TiledMapServiceUsingGMapType.html">adding an ArcGIS Server map type button</a>, <a href="http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/gmaps/help/topics/samples/QueryTask_PolylineFeatureSet_asGeoXml.html">displaying query results as KML</a>, or <a href="http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/gmaps/help/topics/samples/GP_ProfileFromRoute.html">running a task on the server to return a route and elevation profile</a>.</p>
<p>Following are some quick links to example Mapplets built with the ArcGIS JavaScript Extension for the Google Maps API. For those of you who don't know, Mapplets are mini applications that you can add to Google Maps in the “My Maps” tab and are nifty because a user can enable multiple Mapplets at a time.</p>
<br/>
<table>
<tr>
<td>
<img style="padding:5px; margin-left: 5px;" src="http://bp3.blogger.com/_T1lquhCmKo8/SIVF0y5xBkI/AAAAAAAAA-g/BpGP89_rT70/s400/thumbnail_esritiles.jpg"/>
</td>
<td>
<strong>Cached Map Service</strong>
<p>Displays an ArcGIS tiled map service over the Google base map.</p>
<ul>
<li><a href="http://maps.google.com/ig/add?synd=mpl&pid=mpl&moduleurl=http://serverx.esri.com/ArcGISJSExtenderForGMAPS/mappletsStage/PortlandMapplet.xml">Add this Mapplet to Google Maps</a></li>
<li><a href="http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/gmaps/help/topics/samples/gmaps_mapplets_tiled.html">Learn how this Mapplet was created</a></li>
</ul>
</td>
</tr>
<tr>
<td>
<img style="float: left; padding:5px; margin-left: 5px; width:129px; height:110px" src="http://bp1.blogger.com/_T1lquhCmKo8/SIVF5DQiIHI/AAAAAAAAA-o/FfdH2NMQynQ/s400/thumbnail_esricensusblock.jpg"/>
</td>
<td>
<strong>Census Block Query</strong>
<p>Retrieves US Census data from an ArcGIS map service at a point you click and displays it in a series of charts created with the <a href="http://code.google.com/apis/chart/">Google Chart API</a>.</p>
<ul>
<li><a href="http://maps.google.com/ig/add?synd=mpl&pid=mpl&moduleurl=http://serverx.esri.com/ArcGISJSExtenderForGMAPS/mappletsStage/GetCensusBlockAgeBreakdown.xml">Add this Mapplet to Google Maps</a></li>
<li><a href="http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/gmaps/help/topics/samples/gmaps_mapplets_census.html">Learn how this Mapplet was created</a></li>
</ul>
</td>
</tr>
<tr>
<td>
<img style="float: left; padding:5px; margin-left: 5px;" src="http://bp0.blogger.com/_T1lquhCmKo8/SIVF-HMhYxI/AAAAAAAAA-w/qRXsSDz0mx8/s400/thumbnail_messageinabottle.jpg"/>
</td>
<td>
<strong>Message in a Bottle</strong>
<p>Uses an ArcGIS geoprocessing service to tell you where a bottle would drift if you dropped it in the ocean.</p>
<ul>
<li><a href="http://maps.google.com/ig/add?synd=mpl&pid=mpl&moduleurl=http://serverx.esri.com/ArcGISJSExtenderForGMAPS/mappletsStage/MessageInABottle.xml">Add this Mapplet to Google Maps</a></li>
<li><a href="http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/gmaps/help/topics/samples/gmaps_mapplets_bottle.html">Learn how this Mapplet was created</a></li>
</ul>
</td>
</tr>
<tr>
<td>
<img style="float: left; padding:5px; margin-left: 5px;" src="http://bp1.blogger.com/_T1lquhCmKo8/SIVFvaiZveI/AAAAAAAAA-Y/1ZMMusXtzjM/s400/thumbnail_drivetime.jpg"/>
</td>
<td>
<strong>Service Area Analysis</strong>
<p>Uses an ArcGIS geoprocessing service to display drive time polygons from a point you click.</p>
<ul>
<li><a href="http://maps.google.com/ig/add?synd=mpl&pid=mpl&moduleurl=http://serverx.esri.com/ArcGISJSExtenderForGMAPS/mappletsStage/ContUSAServiceAreaGP_GPResults.xml">Add this Mapplet to Google Maps</a></li>
<li><a href="http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/gmaps/help/topics/samples/gmaps_mapplets_service.html">Learn how this Mapplet was created</a></li>
</ul>
</td>
</tr>
</table><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-822923029702004975?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/using-google-maps-to-visualize-arcgis-data-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Improvements to Ads in the Maps API</title>
		<link>https://googledata.org/google-maps/improvements-to-ads-in-the-maps-api/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=improvements-to-ads-in-the-maps-api</link>
		<comments>https://googledata.org/google-maps/improvements-to-ads-in-the-maps-api/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 18:45:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Jim Payne and Brandon Badger, Maps API Team

Our Maps API team strives each day to develop features to help developers build the next generation of great maps mashups.  One of the requests that we've received from our developer community is t...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Jim Payne and Brandon Badger, Maps API Team</span>

<p>Our Maps API team strives each day to develop features to help developers build the next generation of great maps mashups.  One of the requests that we've received from our developer community is to build features that will help convert map traffic into revenue for their site.  To that end, we've been working hard on improving the program that allows Maps API sites to choose to display <a href="https://adwords.google.com/select/LocalAdsHomepage">Local Business Ads</a> on their map as part of the <a href="https://www.google.com/adsense/">AdSense for Content</a> program.  As with all Google ads products, we feel that success depends on providing ads that actually improve the user experience, while at the same time allowing businesses to reach their target audience. </p>
<p>Although we've had an ads program in the API for some time, this week, we are pleased to announce some key improvements to that system:</p>
<ul><li><em>An improved user and advertiser experience.</em>  Ads now display "flat on the map," and we've introduced new more informative category icons. We've also built a system to "nudge" ads so they do not obscure key elements on the map.  <a href="http://gmaps-samples.googlecode.com/svn/trunk/adsmanager/adsmanager_new.html">Check out an example of the new look and feel</a>.</li>
<li><em>Improved coverage.</em>  We introduced <a href="http://groups.google.com/group/Google-Maps-API/browse_thread/thread/ea395e5753f58e2e/15d33ab5ac7754bd?show_docid=15d33ab5ac7754bd">GAdsManager</a> last year, but didn't show many ads. Now, our coverage is much improved without impacting relevance.  We also now show ads for all countries where the <a href="https://adwords.google.com/select/LocalAdsHomepage">Local Business Ad format</a> is supported.  (For your ad to show up on API sites, you need to opt-in to the "Content Network.")</li>
<li><em>Continuous ad serving.</em>  You may have noticed that ads would not be refreshed when users panned the map, so your highly interactive Maps API site wouldn't be able to take advantage of the program.  We've changed this.  Ads are now loaded whenever the user moves the viewport to a new location.</li>
</ul>
<p>We hope that these improvements will help you generate some revenue from your Maps API site and continue to make it better.</p>
<p>You can read more details about these changes on the <a href="http://groups.google.com/group/Google-Maps-API/browse_thread/thread/12534906310673ff#">Maps API Developer Forum</a> or <a href="https://www.google.com/adsense/">sign up for an AdSense account</a> to get started.</p>
<p>NOTE: To be clear, this program has always been and remains completely opt-in for API users. You are under no obligation to display ads in order to use the Maps API.  For more details see the <a href="http://code.google.com/apis/maps/terms.html">Maps API Terms of Service</a>. </p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-5941070812002295476?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/improvements-to-ads-in-the-maps-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wacky Wednesday: Change the background color of your map!</title>
		<link>https://googledata.org/google-maps/wacky-wednesday-change-the-background-color-of-your-map/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wacky-wednesday-change-the-background-color-of-your-map</link>
		<comments>https://googledata.org/google-maps/wacky-wednesday-change-the-background-color-of-your-map/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 04:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team
Sometimes, we fulfill feature requests that we never realized we had, and then wonder why it took us so long to discover that hidden desire in our heart. GMapOptions.backgroundColor, introduced in 2.119, is one of th...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>
<p>Sometimes, we fulfill feature requests that we never realized we had, and then wonder why it took us so long to discover that hidden desire in our heart. <code>GMapOptions.backgroundColor</code>, introduced in 2.119, is one of those features. It's never been asked for and it's a trivial code change, but it's damn nifty. By setting it, you can change the background color of the tiles that appears before tiles load, and on the north/south edges of the world at the low zoom levels. You can use it to make your map blend into the rest of the page, make your tiles blend in better when loading, or just to be obnoxious (<a href="http://gmaps-samples.googlecode.com/svn/trunk/backgroundcolor/colorchanger.html">hot pink tiles</a>, anyone?).</p>
<p>The example below shows setting both the <code>backgroundColor</code> of the map and the page to our beautiful ocean blue. If that piques your interest, check out <a href="http://gmaps-samples.googlecode.com/svn/trunk/backgroundcolor/colorchanger.html">this demo</a> that lets you try out any color with any of our default map types (like #000000 with <code>G_SKY_MAP_TYPES</code>).</p>
<iframe src="http://gmaps-samples.googlecode.com/svn/trunk/backgroundcolor/bgcolor_sea.html" frameborder="0" width="550" height="400">
<a href="http://gmaps-samples.googlecode.com/svn/trunk/backgroundcolor/bgcolor_sea.html">Link to ocean background color map</a>
</iframe><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-1867400797969181384?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/wacky-wednesday-change-the-background-color-of-your-map/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spreadsheet gadgets: free dynamic data for your maps</title>
		<link>https://googledata.org/google-maps/spreadsheet-gadgets-free-dynamic-data-for-your-maps/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=spreadsheet-gadgets-free-dynamic-data-for-your-maps</link>
		<comments>https://googledata.org/google-maps/spreadsheet-gadgets-free-dynamic-data-for-your-maps/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 21:32:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Justin Kosslyn, Google Spreadsheet Team
In the past, Pamela's blogged about ways to create map mashups out of published spreadsheets using the Spreadsheets GData API. Well now we have a more integrated approach using spreadsheets gadgets. For...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Justin Kosslyn, Google Spreadsheet Team</span>
<p>In the past, Pamela's <a href="http://googlemapsapi.blogspot.com/2007/03/creating-dynamic-client-side-maps.html">blogged</a> about ways to create map mashups out of published spreadsheets using the Spreadsheets GData API. Well now we have a more integrated approach using spreadsheets gadgets. For the uninitiated, here's a spreadsheet gadget I'm using to plan my road trip:</p>
<script src="http://spreadsheets.google.com/gpub?url=http%3A%2F%2F4b08ep9s-a.gmodules.com%2Fig%2Fifr%3Fup__table_query_url%3Dhttp%253A%252F%252Fspreadsheets.google.com%252Ftq%253Frange%253DA2%25253AB9%2526key%253Dp9uKGf2zCrqAnguc1LDFTNQ%2526gid%253D0%2526pub%253D1%26up_title%3Droadtrip%2520plans%26up_show_tooltip%3D1%26up__table_query_refresh_interval%3D0%26url%3Dhttp%253A%252F%252Fwww.google.com%252Fig%252Fmodules%252Fmap.xml&height=320&width=450"></script>
<p>It's reading data from a simple spreadsheet and displaying it here. Any changes a collaborator makes to the underlying spreadsheet will be reflected on this page. So what's new about this approach? Spreadsheet gadgets can be embedded directly in spreadsheets, like the <a href="http://spreadsheets.google.com/pub?key=pCQbetd-CptGXxxQIG7VFIQ">heat map in this sheet</a>, or even on on <a href="http://spreadsheets.google.com/pub?key=p9uKGf2zCrqAnguc1LDFTNQ&gid=1">their own sheet</a>. And spreadsheet gadgets can be accessed from within Google Docs Spreadsheet's built-in gadget picker, so they're very easy for everyday folk to discover and use.</p>
<p>For more info, check out <a href="http://googlegadgetsapi.blogspot.com/2008/06/spreadsheet-gadgets-free-dynamic-data.html">our post</a> on the Google Gadgets API blog.</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-8963648758727222038?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/spreadsheet-gadgets-free-dynamic-data-for-your-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Static Maps and HTTP Geocoding to Location-enable Lonely Planet Mobile</title>
		<link>https://googledata.org/google-maps/using-static-maps-and-http-geocoding-to-location-enable-lonely-planet-mobile/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=using-static-maps-and-http-geocoding-to-location-enable-lonely-planet-mobile</link>
		<comments>https://googledata.org/google-maps/using-static-maps-and-http-geocoding-to-location-enable-lonely-planet-mobile/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 22:52:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[
We at Lonely Planet are thrilled to share some experiences from our latest project, http://m.lonelyplanet.com, a location-based world travel guide for mobile devices enabled by mashing the Google Static Maps API, the Google HTTP geocoder, and our new ...]]></description>
				<content:encoded><![CDATA[<p><img align="right" src="http://bp0.blogger.com/_T1lquhCmKo8/SHPwfQXeZjI/AAAAAAAAAx0/TS9y5cSk3sc/s400/screenshot_lonelyplanet.jpg"/>
We at <a href="http://lonelyplanet.com">Lonely Planet</a> are thrilled to share some experiences from our latest project, <a href="http://m.lonelyplanet.com">http://m.lonelyplanet.com</a>, a location-based world travel guide for mobile devices enabled by mashing the <a href="http://code.google.com/apis/maps/documentation/staticmaps/">Google Static Maps API</a>, the <a href="http://code.google.com/apis/maps/documentation/services.html#Geocoding_Direct">Google HTTP geocoder</a>, and our new <a href="http://developer.lonelyplanet.com">Content API</a>. We’ve been publishing travel content for decades, (in case you’re not familiar, we’re the guides with blue spines in your local bookshop), but we’re excited because this is the first time we’ve been able to deliver our information in a mobile and spatially relevant way, allowing us to ask questions like “what should I explore today?” and “what’s around me worth exploring?”
</p>
<p>
Of course, to answer these questions, we need to know the lat/lng of both our user and the points of interest (POIs) around them. POIs aren't a problem, as our authors plot these on a map during their on-the-ground research. User locations are trickier. As our mobile site is a browser-based service, we don't (yet!) have the luxury of APIs for grabbing precise locations via GPS, wifi, or cell tower triangulation. 
</p>
<p>
So, for the moment we’ve asked our users to self-select their location by entering it into a form field. Because typing on typical mobile keypad is <em>painful</em>, we wanted to save thumbs and offload parsing to a geocoder which could deal with the ambiguity of short location descriptions, various zip/post code formats etc. Enter Google's geocoder (HTTP flavour – no JavaScript available on most mobile browsers!). We can proxy this API from our server and allow users to enter a wide variety of location descriptors, from zip codes (90210) to tube stations (holborn) to street names (oxford street) to suburbs (footscray) and the geocoder will decipher it, geocode it, and return either a lat/lng or a list of options for disambiguation. 
</p>
<p>
Once we know the user's lat/lng, we can assess which content is most spatially relevant to them by calculating proximity to POIs in our database. To this end, we use the POI proximity method from our Content API, in which we pass in the user's location and a radius in kilometers, returning POIs within range in their order to proximity. This service uses the <a href="http://en.wikipedia.org/wiki/Haversine_formula">Haversine formula</a>, a tip <a href="http://code.google.com/support/bin/answer.py?answer=87134&topic=11364">we picked up from Pamela</a> a couple of months ago.
</p>
<p>
Once we’ve got the POIs, the next step is plotting them (and the user’s location) on a map. Since ours is an application for a baseline of devices with limited capabilities, we don't have the luxury of Flash, AJAX, or JavaScript. Enter the Google Static Maps API. By passing in our geocodes, a set of parameters for labeling markers, and a map height / width (calculated per device by querying screen sizes from <a href="http://wurfl.sourceforge.net/">WURFL</a>) the Static Maps API produces for us an image displaying a marker for the user's location and for each of the POIs. 
</p>
<p>
To help our users explore further, we augmented the map with a lightweight navigation bar (north, south, east, west, zoom in, zoom out) so that users can pan around the map to surrounding areas. This little navigation bar uses a bit of code we thought we’d share:
</p>
<p>
Let's say we have a static map of width <em>w</em> pixels, height <em>h</em> pixels, centered at <em>(lat,lng)</em> and zoom level <em>z</em>.
</p>
<pre>
$map_link = "http://maps.google.com/staticmap?key={$key}&size={$w}x{$h}&center={$lat},{$lng}&zoom={$z}";
</pre>
<p>
Then, we can generate north, south, east, and west 'panning' links as follows (this example assumes the
existence of a <a href="http://en.wikipedia.org/wiki/Mercator_projection">mercator projection</a> class with standard <em>xToLng</em>, <em>yToLat</em>, <em>latToY</em>, <em>lngToX</em> routines):
</p>

<pre>
// a mercator object
$mercator = new mercator();

// we'll pan 1/2 the map height / width in each go
 
// y coordinate of center lat
$y = $mercator->latToY($lat);

// subtract (north) or add (south) half the height, then turn back into a latitude
$north = $mercator->yToLat($y - $h/2, $z);
$south = $mercator->yToLat($y + $h/2, $z);

// x coordinate of center lng
$x = $mercator->lngToX($lng);

// subtract (west) or add (east) half the width, then turn back into a longitude
$east = $mercator->xToLng($x + $w/2, $z);
$west = $mercator->xToLng($x - $w/2, $z);
</pre>

<p>
So that our north, south, east, west links are:
</p>

<pre>
$north = "http://maps.google.com/staticmap?key={$key}&size={$w}x{$h}&center={$north},{$lng}&zoom={$z}";
$south = "http://maps.google.com/staticmap?key={$key}&size={$w}x{$h}&center={$south},{$lng}&zoom={$z}";
$east = "http://maps.google.com/staticmap?key={$key}&size={$w}x{$h}&center={$lat},{$east}&zoom={$z}";
$west = "http://maps.google.com/staticmap?key={$key}&size={$w}x{$h}&center={$lat},{$west}&zoom={$z}";
</pre>
<p>
To see the site in action, go to <a href="http://m.lonelyplanet.com">http://m.lonelyplanet.com</a> in your mobile browser, select the "What's around me?" feature and enter your location or a place you're planning to travel. Make sure to send us feedback - as this is our first location-based service there are plenty of things we're learning as we go. At the moment we're experimenting with additional ways of enhancing the accuracy of the user's location - like everyone else, we're excited about the location capabilities available on the Nokia, Android and iPhone platforms and are thinking through services which could make best use of those.  
</p>
<p>
As you've seen from this post, our mobile site is really just a mash-up of our own Lonely Planet Content API and the Google geo API's. The Content API is available through our newly launched developer program, so if you head over to <a href="http://developer.lonelyplanet.com">developer.lonelyplanet.com</a> and join our developer community, you can build the site yourself! The only thing we ask (actually, 2 things) is that you remain non-commercial and that you don’t openly compete with us. So, sign up! We’d love to see what you can create using our content, Google’s geo services, and any other API you choose (YouTube? Flickr? Twitter? Others?).
</p>
Ken Hoetmer – Digital Mapping Manager <br/>
Chris Boden - Head of Wireless & Innovation <br/>
Kris Nyunt – Senior Engineer, Wireless & Innovation <br/>
Follow us on Twitter @ lplabs <br/><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-7456723594267003026?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/using-static-maps-and-http-geocoding-to-location-enable-lonely-planet-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>5 Ways to Use Static Maps, Plus New Features!</title>
		<link>https://googledata.org/google-maps/5-ways-to-use-static-maps-plus-new-features/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=5-ways-to-use-static-maps-plus-new-features</link>
		<comments>https://googledata.org/google-maps/5-ways-to-use-static-maps-plus-new-features/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 14:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Posted by Pamela Fox, Maps API Team

First, let's go over a few new features for static maps:
We support larger maps, up to 640X640 pixels.We use a more compact Google logo for maps less than 100 pixels wide.We support the ability to specify a map view...]]></description>
				<content:encoded><![CDATA[<span class="post-author">Posted by Pamela Fox, Maps API Team</span>

<p>First, let's go over a few new features for static maps:</p>
<ul><li>We support larger maps, up to 640X640 pixels.</li><li>We use a more compact Google logo for maps less than 100 pixels wide.</li><li>We support the ability to specify a map viewport by sending in a span and center (instead of zoom and center).</li></ul>
<p>More info in the <a href="http://code.google.com/apis/maps/documentation/staticmaps/">documentation</a>.</p>
<p>Now, for the good stuff. I've just spent the last 3 hours surfing the web, looking for example sites using our Static Maps API, and I'll admit that I had no idea developers were using static maps in so many different ways.
Below, I've summarized the various techniques and linked to example sites for each. I urge you to 1) visit each of them, and 2) decide your favorite technique and implement it on your own site.</p>
<ol><li><strong>Include a static map on the page, go to a large interactive map when clicked. This is a good technique for those of you who'd like to cater to map-centric users versus text-centric users.
</strong><br/>
<img style="cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_T1lquhCmKo8/SGOTIZSu4pI/AAAAAAAAAt0/8OzyH2XgCuE/s400/screenshot_staticmapsbooking.jpg" border="0"/>
<br/>
Example sites:
<a href="http://www.booking.com/hotel/it/intercontinental-de-la-ville-rome.de.html?aid=301584;label=rome-RQXPEV0TMPOKjiXuljrsAwS821598793;sid=d463192e1c1dedddef28d159c24cd3d1">Booking.com</a> (pictured above), <a href="http://las-vegas-hotels.tripadvisor.com/Hotels-g45963-Las_Vegas_Nevada-Hotels.html">TripAdvisor</a>, <a href="http://www.openrice.com/restaurant/sr2.htm?shopid=9891">OpenRice</a>, <a href="http://www.qype.co.uk/place/88425--LAvenue-Paris">Qype</a>, <a href="http://www.hoteltravel.com/usa/hawaii/castle_hilo_hawaiian.htm">HotelTravel</a>,   and <a href="http://www.adn.es/">ADN</a></li>
<br/><br/>
<li><strong>Include a static map on the page, and replace that with an interactive map after some user interaction. This is a good technique if you'd like interactive maps on every page, but are worried about them making the page load too slowly for users on a slow connection.</strong><br/>
<img style="cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_T1lquhCmKo8/SGOSm_hpmFI/AAAAAAAAAts/_cYnACyg48w/s400/screenshot_staticmapsgeocaching.jpg" border="0"/>
<br/>
Example sites:
<a href="http://www.yelp.com/biz/fuki-sushi-palo-alto">Yelp</a>, <a href="http://www.gumtree.com/london/16/25329716.html">GumTree</a>, and <a href="http://www.geocaching.com/seek/cache_details.aspx?wp=GC1C7NF">Geocaching</a> (pictured above - For a good laugh, check out the difference between their map when you're logged in versus when you're not)
<br/></li>
<br/><br/>
<li><strong>Include a static map on the page that's centered on the geographical region that a page is about. This is a good technique if you just want a quick reference map for the user, and if you don't have multiple points to display.</strong><br/>
<img style="cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_T1lquhCmKo8/SGOT2m9oloI/AAAAAAAAAt8/zXXFOx8VYBI/s400/screenshot_staticmapsweddingmappet.jpg" border="0"/>
<br/>
Example sites:
<a href="http://www.weddingmapper.com/g/nj/cape_may/topics/view/55">Wedding Mapper Venues</a> (pictured above), <a href="http://www.adriagate.com/sk/chorvatsko-destinacia/Cervar_Porat-(Porec).aspx">Adriagate</a>,  <a href="http://www.citybeat.de/news/Alten-Mann-im-Bremer-Dom-ueberfallen-und-niedergeschlagen">citybeat</a>,
and <a href="http://www.opt.be/informations/toeristische_attracties_koekelberg__publiek_aquarium___centrum_voor_aquariologie__passion_poissons_/nl/V/46706.html">Opt.be</a> (this one links to a maps.google.com URL for the displayed location, which is a good variation on this technique and should be minimal extra work for the developer.)</li>
<br/><br/>
<li><strong><img align="right" src="http://bp0.blogger.com/_T1lquhCmKo8/SGOWbPiPhhI/AAAAAAAAAuE/CwaJuBlGyQ0/s400/screenshot_staticmapsgeolocator.jpg" border="0"/>Use static maps inside a gadget. This is a great technique for all gadgets, since often times users will have multiple gadgets on the same page (on iGoogle or their own sites). Each gadget should ideally take as little time as possible to load, so that the parent page loads quickly.</strong>
<br clear="all"/>
Example Sites:
<a href="http://gmodules.com/ig/creator?url=http://hosting.gmodules.com/ig/gadgets/file/113875714764023074084/adssgeoip.xml&synd=open&w=250&h=200&title=GEO+IP+Locator&border=%23ffffff%7C3px%2C1px+solid+%23999999">Geo IP Locator Gadget</a> (pictured above), and <a href="http://www.google.com/ig/directory?url=www.google.com/ig/modules/mapsearch.xml">Google Map Search Gadget</a></li>
<br/><br/>
<li><strong><img align="right" src="http://bp1.blogger.com/_T1lquhCmKo8/SGOXN3zp8EI/AAAAAAAAAuM/92Mx-PL1tPU/s400/screenshot_staticmapslonelyplanet.jpg" border="0"/>Use static maps for mobile implementations of map sites. This is a no-brainer, as Javascript isn't supported across most/all mobile browsers (and loading all the interactive map resources can be a bit much over a mobile connection).</strong>
<br clear="all"/>
Example Sites:
<a href="http://m.yellowbot.com/tribeca-blues-new-york-ny.html">Mobile YellowBot</a>, <a href="http://m.lonelyplanet.com/v1/index.php?go=worldguide&g=16665&d=6342&l=activity&a=eat&poi=6677&rad_max=10&rad_min=0&map=1&z=14&h=0&v=-1">Mobile Lonely Planet</a> (pictured above), <a href="http://updates.orbitz.com/mobile/airports/LAX/traffic">OrbitzTLC Traveler Update</a>, and <a href="http://nonjslocalsearch.appspot.com/">Non-JS Local Search</a> (this demo is running on Google App Engine, using code written by a Googler and open sourced  <a href="http://code.google.com/p/google-ajax-examples/source/browse/trunk/nonjslocalsearch/?r=127">here</a>).
</li></ol><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-4399228947965710629?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/5-ways-to-use-static-maps-plus-new-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Panoramio API  &amp; MarkerManager = Instant Photos Layer!</title>
		<link>https://googledata.org/google-maps/panoramio-api-markermanager-instant-photos-layer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=panoramio-api-markermanager-instant-photos-layer</link>
		<comments>https://googledata.org/google-maps/panoramio-api-markermanager-instant-photos-layer/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 17:48:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[A few weeks ago, we launched two layers on maps.google.com, accessible via the "More.." button. The photos layer displays Panoramio photos, continuously loading in more photos as you zoom in, and letting you click the photos to see the info window with...]]></description>
				<content:encoded><![CDATA[<p>A few weeks ago, we launched two layers on <a href="http://maps.google.com">maps.google.com</a>, accessible via the "More.." button. The photos layer displays Panoramio photos, continuously loading in more photos as you zoom in, and letting you click the photos to see the info window with more information. Behind the scenes, the implementation is basically a <code>GTileLayerOverlay</code> plus array of pixel bounds specifying the clickable areas. It's a clever technique that can be used whenever you have vast amounts of potentially clickable data, and a server that can render out tiles. However, I'm here today to show you how to create a similar effect using <code><a href="http://gmaps-utility-library.googlecode.com/svn/trunk/markermanager/">MarkerManager</a></code> plus <a href="http://www.panoramio.com/api/">Panoramio's API</a>.</p>
<p>The Panoramio API lets you specify a bounding box query, sort by popularity, and output its data in JSON format. The <code>MarkerManager</code> lets you specify marker batches per zoom level ranges, and only displays the markers for the current viewport. Using these features, we can then do the following:</p>
<ol>
<li>Create an empty <code>MarkerManager</code>.</li>
<li>Create an empty hash table to store photo ids.</li>
<li>Assign a listener to the map "moveend" event. This function calls the Panoramio API, sends in the current bounding box, and asks for the 10 most popular photos. The query looks like this:
<pre class="code">
http://www.panoramio.com/map/get_panoramas.php?
order=popularity&set=public&from=0&to=10&
minx=-124.29382324218749&miny=36.089060460282006&
maxx=-119.8773193359375&maxy=38.724090458956965&
callback=MyCallback
</pre></li>
<li>When the query responds, iterate through the results, and for each result whose ID isn't already in the hash table, add it to the <code>MarkerManager</code> for the current zoom level, and add it to the hash table.</li>
</ol>
<p>The effect to the user is that additional photos stream in and populate the map as they zoom in - check it out below or <a href="http://gmaps-samples.googlecode.com/svn/trunk/panoramio/pano_layer_enabled.html">here</a>. You can use this technique whenever you have a database that can be queried by bounding box and rank the results.</p>
<p>But if you want to just put a Panoramio button on your site, you can copy the code & scripts from <a href="http://gmaps-samples.googlecode.com/svn/trunk/panoramio/pano_layer.html">this example</a>. If you're a Panoramio user yourself, you can actually restrict the layer to only your photos by passing in your user ID to the API call. Developer Ade is experimenting with this on his <a href="http://www.ibizaa-z.com/index_pano.php">ibizaA-Z</a> site in order to just display his Ibiza photos.
</p>
<iframe src="http://gmaps-samples.googlecode.com/svn/trunk/panoramio/pano_layer_enabled.html" width="570" height="600" frameborder="0"><a href="http://gmaps-samples.googlecode.com/svn/trunk/panoramio/pano_layer_enabled.html">Link to PanoramioLayer example</a></iframe>

<span class="byline-author">Posted by Pamela Fox, Maps API Team</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-6359736089722962163?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/panoramio-api-markermanager-instant-photos-layer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geo @ Google I/O: Relive the magic!</title>
		<link>https://googledata.org/google-maps/geo-google-io-relive-the-magic/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=geo-google-io-relive-the-magic</link>
		<comments>https://googledata.org/google-maps/geo-google-io-relive-the-magic/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 21:39:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[On May 28th &#038; 29th, several thousand developers descended upon the Moscone Center in San Francisco to participate in Google I/O, our largest developer event to date. Among those were hundreds of geo developers, and I felt fortunate to be able to meet f...]]></description>
				<content:encoded><![CDATA[<p>On May 28th & 29th, several thousand developers descended upon the Moscone Center in San Francisco to participate in Google I/O, our largest developer event to date. Among those were hundreds of geo developers, and I felt fortunate to be able to meet folks in person that I assumed would just be GMail-buddies-for-life: Jesse Kocher from <a href="http://www.walkscore.com/rankings/Seattle">walkscore</a>, Alex Neth from <a href="http://sfbay.cribq.com">cribq.com</a>, Andres Ferrate of <a href="http://mapdango.com/">Mapdango</a>, Ken Hoetmer of <a href="http://m.lonelyplanet.com/">lonely planet</a>, Nianwei Liu of <a href="http://maps.charmeck.org/zoningmaps/">Charlotte Zoning Maps</a>, Kevin MacDonald of <a href="http://pentura.ca/">Pentura</a>, Jeffrey & Dave Martin of <a href="http://www.360cities.net/vrmap/prague/">360cities</a>, and many more. Hopefully those of you who couldn't come out here for I/O will be joining us at one of our <a href="http://code.google.com/events/developerday/2008/">international Developer Days</a> (¿alguien quiere celebrar en <a href="http://code.google.com/intl/es_mx/events/developerday/2008/home.html">Mexico City</a> conmigo?). </p>
<p>Until then, you can watch all the I/O presentations in full Youtube glory. The Maps API and KML presentations are in the player below, and the full list of the 70+ presentations (with some links to slides) is <a href="http://sites.google.com/site/io/">here</a>. You can also check out our <a href="http://picasaweb.google.com/developerday/GoogleIO200802">photo album</a> from the event (I've never felt so dwarfed by <a href="http://picasaweb.google.com/developerday/GoogleIO200802#5208553810395912162">a marker</a> before), and <a href="http://sanfrancisco.360cities.net/fs.html?loc=google-IO2008-conference.p36">the panoramas</a> that Jeffrey took at the event (I've never met <a href="http://sanfrancisco.360cities.net/fs.html?loc=google-IO2008-after-party.p36&cat=event">a chocolate fountain</a> I didn't like :).</p>

<object width="480" height="385"><param name="movie" value="http://www.youtube.com/p/A034136E85726FD4" /><embed src="http://www.youtube.com/p/A034136E85726FD4" type="application/x-shockwave-flash" width="480" height="385"></embed></object>

<span class="post-author">Posted by Pamela Fox, Maps API Team</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-5665437347934300171?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/geo-google-io-relive-the-magic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>360cities.net: An interview with the founders, plus 5 live demos</title>
		<link>https://googledata.org/google-maps/360cities-net-an-interview-with-the-founders-plus-5-live-demos/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=360cities-net-an-interview-with-the-founders-plus-5-live-demos</link>
		<comments>https://googledata.org/google-maps/360cities-net-an-interview-with-the-founders-plus-5-live-demos/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 20:51:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[360cities.net is a virtual reality network with panoramas from all around the world. They bring us fantastic depictions of the world's beauty and human creativity.
They also happen to take advantage of almost every Geo API that we have! We were fortuna...]]></description>
				<content:encoded><![CDATA[<p><a href="http://360cities.net/">360cities.net</a> is a virtual reality network with panoramas from all around the world. They bring us fantastic depictions of the world's beauty and human creativity.</p>
<p>They also happen to take advantage of almost every Geo API that we have! We were fortunate enough to have them at <a href="http://code.google.com/events/io/">Google I/O</a> last week, so we could sit with them and discuss how they do what they do.</p>
<p>To cut to the chase, you can <a href="http://www.youtube.com/watch?v=2kk7szjUKTU">watch the entire set of interviews and demos in one go</a>, or you can jump around using the playlist custom viewer below. I happen to be a huge fan of their use of the new Flash API as they "flip things inside out":</p>
<object width="600" height="413"><param name="movie" value="http://www.youtube.com/cp/vjVQa1PpcFMpZf3y-3x_SAiCcOlyDD-kcRUDW0yhQm4="></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/cp/vjVQa1PpcFMpZf3y-3x_SAiCcOlyDD-kcRUDW0yhQm4=" type="application/x-shockwave-flash" wmode="transparent" width="600" height="413"></embed></object>
<p>We talked about a really varied set of topics. Not only did we discuss their usage of the APIs, but we got into how they manage to deal with these huge images, how they stitch them together, and how they even manage to get so many of them.</p>
<p>You will see the process, how their data center started in a closet in Boston, how Lurch from the Adams family is one of their photographers, and the importance of the <a href="http://en.wikipedia.org/wiki/BBC_Micro">BBC Model B</a>.</p>
<p>Thanks so much to Jeffrey and David Martin for joining us. A real pleasure.</p>

<span class="byline-author">Posted by Dion Almaer, Google Developer Programs</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-1586414347094536538?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/360cities-net-an-interview-with-the-founders-plus-5-live-demos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simulating Driving on Google Maps: Using Flash for a Faster &amp; Smoother Experience</title>
		<link>https://googledata.org/google-maps/simulating-driving-on-google-maps-using-flash-for-a-faster-smoother-experience/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=simulating-driving-on-google-maps-using-flash-for-a-faster-smoother-experience</link>
		<comments>https://googledata.org/google-maps/simulating-driving-on-google-maps-using-flash-for-a-faster-smoother-experience/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 22:43:00 +0000</pubDate>
		<dc:creator><![CDATA[Pamela Fox]]></dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[google geo]]></category>
		<category><![CDATA[google geodevelopers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Hi! I'm Katsuomi Kobayashi, a developer from Osaka, Japan. I'm delighted to write as a guest on this blog.
2D Driving Simulator on Google Maps is a personal project of mine. With the power of Google Maps, you can drive around the world without having t...]]></description>
				<content:encoded><![CDATA[<p>Hi! I'm Katsuomi Kobayashi, a developer from Osaka, Japan. I'm delighted to write as a guest on this blog.</p>
<p><a title="2D Driving Simlulator on Google Maps" href="http://geoquake.jp/en/webgame/DrivingSimulatorGM/" id="pvax">2D Driving Simulator on Google Maps</a> is a personal project of mine. With the power of Google Maps, you can drive around the world without having to worry about spending money on expensive gas. And it is using the brand-new Flash API which Google released two weeks ago.</p>
<img style="border:1px solid black" src="http://3.bp.blogspot.com/_T1lquhCmKo8/SEcbBxIqbsI/AAAAAAAAAh4/u4dpWEA8BvQ/s400/screenshot.png"/>
<p>My original <a title="2D Driving Simulator" href="http://geoquake.jp/en/webgame/DrivingSimulator/" id="j9vw">2D Driving Simulator</a> is a Flash toy that simulates car parking and trailer movement. In my second release of the toy, I added in wide courses to make it a bit more fun (and less crash-prone). When I tried to add in more natural courses and realized how difficult it was, I decided to test out using the real roads of Google Maps as a backdrop.</p>
<p>At the time of that decision, the Google Maps API was only available in Javascript - so I actually had to find a way to overlay the Flash toy on top of a Javascript map and synchronize them. Amazingly, it actually somewhat worked. Unfortunately, it's 'success' relied on the troublesome wmode=transparent Flash parameter, and on having to call JavaScript from Flash 20 times a second (certainly not a typical thing to do).</p>
<p>So, the release of the <a href="http://googlemapsapi.blogspot.com/2008/05/introducing-google-maps-api-for-flash.html">Google Maps API for Flash</a> was truly happy news for me. I implemented it right away. It was easy to replace the JS API; it only took a few hours. All I had to do was to add a com.google.maps.Map child on the main Sprite, copy the JavaScript functions to ActionScript, and adapt them according to the API's minor differences.</p>
<p>The result is very impressive: there is both an increased frame rate (from 15-20 fps to 40 fps) *and* a decreased CPU usage. Moreover, the map perfectly follows the vehicle's movement. Quite natural!</p>
<p>The Google Maps API for Flash has enabled us developers to create real-time Google Maps applications. I believe this excellent API has unlimited potential and look forward to using more of it in the future.</p>

<span class="byline-author">Posted by Katsuomi Kobayashi, Community Developer</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3124040365160254795-8592411174438939993?l=googlegeodevelopers.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-maps/simulating-driving-on-google-maps-using-flash-for-a-faster-smoother-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
	</channel>
</rss>
