Take10 for the 2010 Census

March 24th, 2010

In March 2010, more than 130 million addresses will receive a 2010 Census form by mail or hand delivery. The 2010 Census will document the changes in our nation since the last decennial census in 2000, and tell us how we’ve evolved as a country. Because census data affect how more than $400 billion in federal funding is distributed to tribal, state and local governments, the census also will frame the future of our country and our communities for the next 10 years.

During Census 2000, the mail participation rate was 72 percent as of the April 2000 cut-off. About $85 million is saved for every one percent increase in mail participation. For these and many other reasons, we encourage everyone to participate in the 2010 Census.

The 2010 Census “Take10″ campaign includes an interactive map that allows you to see your current participation rates at state, county, and local levels and to compare them to your Census 2000 rates of participation. In support of the Census Take10 effort, Innovation Landscape in partnership with Google has built a Google Earth version of the participation map for use by the media and public.

We invite you to explore our map, link to it, and embed it in your website to help encourage maximum participation in the Take10 campaign.

Google Earth Take10 Map

Building Advanced 3D Geographical Applications for the Web with the Google Earth API

May 28th, 2009

By Roman Nurik from the Google team.  

This is the final geo session for Google I/O 2009.  Links for Roman’s presentation can be found HERE

As Roman pointed out, this marks the 1 year anniversary of the Google Earth API.  New features over the last year include:

  • Mac Support
  • KML Tour Playback
  • Underwater Terrain
  • Mars mode
  • Enterprise server connectivity
  • Over 80 samples in the demo gallery

Roman introduced ‘My Earth’ a mashup of the new Google MyMaps Data API and the Google Earth API.

MyEarth MyMaps on Google Earth API







To support the app, he’s released new Earth API open source libraries:

  1. geojs which provides common geo math and geometries
  2. earth-api-utility-library (GEarthExtensions)
  • creates KML objects via ‘JSONic’ methods
  • new methods for feature by id, dom walk, and ‘clear’ features
  • Animations/effects framework
  • 1-line draggable placemarks and line strings
  • Screen overlay ‘Buttons’ including a control set like MyMaps geometry editing
  • Apache 2.0 License

Other Recent Developments G_SATELLITE_3D_MAP has been upgraded significantly:

  • all KML features supported in ggeoXML will now transer to the Earth mode
  • it appears that javascript based updates to ggeoXML now propagate to the Earth mode
  • 3D objects within KML called by ggeoXML will now show in Earth mode even though don’t in the 2D modes
  • switches to and from the Earth mode now include nicer animations in tilt and rotation

All in all a great session with some fun new tools!

Google Maps API for Mobile Google I/O Session

May 28th, 2009

Using Maps on Mobile devices is a challenge, especially when powerful features are needed.

iPhone and Andriod now fully support the standard JavaScript Google Maps API which makes it easier to develop accross platforms.

Care must be taken in mobile designs though due to:

  • Screen size
  • User interaction
  • Speed

For example, iPhone Safari is 10x slower to parse JS than desktop with limited caching.  Networks also induce significant latencies which often dominate load times relative to total file sizes.  Improve performance by compiling/obfuscating code.  

Current Gmaps API (v2) is poorly designed for mobile apps.  v3 means to address these concerns and enhance mobile support.

  • Only 35K in size (vs 190Kb in current v2)
  • Static map is built in
  • Optimized for mobile devices
  • ~9s to load js and tiles on v3 vs over 18s on v2
  • Chrome and iPhone supported
  • no domain keys required!
  • Default UI construct so app can by automatically keep up with control updates
  • New geocoding API

v3 is based on a Model-View-Controller architecture to allow fast loading of initial models and wait for on-demand loading of required views.  New features can be added as additional views/controllers with less impact to the overall code base.

Google I/O 2009 Keynote Day 2

May 28th, 2009

Live blogging from Google I/O 2009 in San Francisco.  Yesterday say the release of a number of product enhancements and directional annoucements:

  • Gmaps API v3 using an MVC programming model and optimized for fast loading on mobile devices
  • Open registration for Java Apps in App Engine
  • Lots of HMTL5 evangelism 
  • A certified developer program for Gmaps

We were left with an expectation of more announcements in today’s keynote which is about to start.  We’ll blog them here as they come out.

1st up is Steven Canvin from LEGO Group (each chair this morning had 6 standard 8 ‘peg’ LEGO blocks).  He asks, “How many combinations can you create from 6 blocks?  (Answer: 951,103,765) He gave a short history of LEGO Mindstorm and LEGO’s use of adult enthusiasts to help feed the R&D effort.  Use of open-source SDK’s has helped drive Mindstorm product adoption.

Now Vic Gundotra (Google VP of Engineering) is back up.  New personal communication/collaboration tool in early form.  Will be open source. 

Named Google Wave

Engineered by Lars Rasmussen and others.  Stephanie Hannon is the PM.  Developed in Sydney Australia.  I/O attendees will be given developer beta accounts.  The product will launch later this year.

More info at:




  • Wave assumes a ‘convsersation’ which is a shared,hosted object which represents a discussion thread
  • Blends e-mail and chat paradigms into a common interface where ‘threads’ can be updated in non-real time ala e-mail or realtime ala chat depending on the connectivity of the recipients
  • Because the ‘thread’ is a hosted conversation recipients can make inline comments to previous replies without copying whole messages
  • Adding new participants to a thread allows then to ‘playback’ the sequential messaging up to the existing conversation ’state’
  • In real-time mode, users have the option to view others’ typing live
  • Private replies are supported
  • Drag and Drop attachments (photos demonstrated).  Has inline processing to thumbnail images and transmit to the server prior to uploading the full photos.  Requires Gears for this feature.
  • Can copy attachments (such as photos) from one conversation (Wave) into another or new message
  • Can link automated ‘agents’ to a wave to allow direct publishing via Wave API’s.  Links go both ways so responses can be sent via the blog but replied to via other interfaces
  • Allows users to partipate in threads across multiple sites through a single interface by bringing active threads in the Wave Client – think Google Reader, but for discussion threads – so you can write, not just read
  • Connections created via an Embed API
  • Edits are carried through all instances of a Wave thread
  • Can use the editing feature to provide a collaborative environment for discussions.  Change markup is provided to other users.  Author receives a change notification.
  • Playback will provide powerful tools for filtered, reversion to prior versions, version labels, etc.
  • SVN like ability to merge changes from multiple Waves into a single ‘production’ Wave 
  • Concurrent edits can be made with live preview by any number of users at the same time
  • Multi language support, right to left languages, … supported
  • Wave is built using Google Web Toolkit (GWT) 
  • Shared tagging, folders, subjects for Wave organization, can link to external Waves – interlinking similar to wikis

Wave Extensions:

  • Context-based spell checker
  • Automatic link detector from plain text
  • Robots act on the server to modify Waves via the collaborative editing engine
  • Add links into Wave directly from inline Google Search
  • Spell check, linking engine, etc. to be available as external API’s for developers
  • Various Gadgets were shown using client-side Wave extensions – a Soduku game, Chess game, Collaborative Map
  • Robot App for making a Poll demonstrated
  • Extension for interacting with Twitter via Waves
  • Robot to do live translation of Wave messages – ‘Rosie’ with support for over 40 languages

Google is planning to open source most Wave code so that others could create ‘competing’ systems.   Multiple instances could cross-communicate via invitation.  Private replies within Wave server instances are not communicated outside of the originating server even in the case of ’shared’ Waves.

What You Don’t Know About Google API’s Can’t Hurt You

May 27th, 2009

Mano Marks lead off on the 1st Google Geo session for Google I/O this year. 

First up were updates, enhancements, and changes for the Google Earth API and Google Earth support for HMTL.  Highlights included

  • The new Tour KML tags for GE 5.0
  • Use of update tags during Tours to create animations during tours
  • Using the GE API to playback tours
  • Limited HTML 5 is operative within GE 5.0 including video and audio tags on the Mac (via webkit 4.5 on PC)
  • Based on an audience question, JavaScript support for JS within KML description windows will be resolved soon

SketchUp API – Mano showed some neat physics simulations which use the SketchUp API.

Pamela Fox presented on Google Maps APIs.  

  • Travelling Salesman in Google Maps www.geweb.net/optimap/
  • StaticMaps API does support directions 
  • Google Maps API can be used for Desktop Applications (Section 7.1c in the Terms of Service)
  • Reverse Geocoding, you can get full jSON on reserve lookups for large areas and the bounding box will be returned as the recommended viewport
  • ClientLocation API to use IP to rough guess user location
  • Monetization: GoogleBar and Maps Ad Unit
  • Recoloring tiles in Flash (mush be approved by Google)
  • 3D Flash Map with GE API like rotation control in Flash 9 and 10 (coming soon)
  • Google Maps “Qualified Developer” program http://code.google.com/qualify

Google I/O 2009 Keynote

May 27th, 2009

We’re at Google I/O in San Francisco this week.  I/O is a great venue to learn about Google applications directly from the coders who right them while mixing with some of the best 3rd party developers in the world.  

This marks our 3rd year at I/O and we’re looking forward to the next 2 days of sessions.  

CEO Eric Schmidt opened the keynote address.  His theme was ‘It’s Time’ in terms of platforms and opportunities to solve real user problems in simple ways rather than complex ones.  

Vic Gundotra followed with a talk themed ‘A more Powerful Web, Made Easier’.  Browsers have attained a 100x implovement in Javascript parsing in the last 10 years.  Nearly 500 million people are using open source browsers.  HTML 5 should offer a significant enhancement to developer options.

  • <canvas> tag for in browser drawing giving pixel level control of the browser
  • Matt Papakitos demo of O3D (open sourced on code.google.com ) Googles Javascript 3D inbrowser demo.  Stressed need for common 3D browser API’s and standardization for 3D
  • HTML5 <video> tag to abstract playback and control of video
  • Accurate geolocation moving forward via various techonologies.  Jay Sullivan (VP Mozilla) presented developer info for Firefox 3.5 (bit.ly/ff35dev) including canvas, video, geolocation, app cache + database, and web workers.  Google Maps demo of ‘My Location’ using the geolocation API to transmitt user position to Google to zoom/pan Google Maps to the user location.  
  • Lattitude on iPhone coming directly in the browser.  Nextgen iPhone software for OS 3.0 will include native Safari support for W3C geolocation
  • Example of Gmail on Adriod in offline mode.  Google’s 1st major HTML5 app to use app cache
  • Michael Abbott (Senior VP, Palm) on WebOS which primarily uses HMTL, CSS, javascript to implement applications.  Exposing Accelerometer data into JavaScript API
  • Web workers defines API for background scripts.  Motion detection in video via Javascript with annotation via a background process demo.  Very impressive given typical computational complexity of image and video processing

Andrew Bowers and Kevin Gibbs talked about app engine.  Coming up- backing processing, large object store, database export, XMPP, incoming email.  App Engine is now open for Java application signups.  Demo showed using Eclipse with the App Engine plugin to quickly develop and deploy Java Apps to the web.  GWT 2.0 will provide in-browser debugging support cross-browser also a runAsync() option for functions which will allow the compliler to split optimize javascript code for faster download.  

DeWitee Clinto introduced Google Web Elements for simple ways to embed Google API’s (google.com/webelements) in simple ways such as Maps, Site Search, News, Calendar, Conversation.

Roman Guy previewed ‘Donut’ the next version of Andriod.   Search UI will remember how search results where ‘used’ on each device.  Developers will be able to supply search terms in code for display in the Search UI.  A text-to-speach API will allow developers to generate voice commands in various languages and accents.  The underlying text to speech engine will be open source.  Andriod UI will support ‘finger writing’ with handwriting recognition on the screen to filter results or jump through large lists.

Andriod Devleper Challenge 2 at code.google.com/android/adc

All I/O attendees will receive an unlocked Android phone with unlimited 30 day SIM card for data and voice!

Google Earth API Updated to Version 5.0

April 2nd, 2009

Google has released a new version of the Google Earth API and Plugin today.  Based on the release notes, there are a lot of goodies for users and developers.  

The upgrade extends recent Google Earth 5.0 client features into the Plugin including Tour Playback and Ocean Content as mentioned by Frank Taylor at Google Earth Blog.  

Basic timeline support is also available – an oft requested feature since the release of the plugin last May (it’s really been almost a year!).  Play the DestinSharks.com Death Valley Driving Tour with the new Plugin - this was one of the 1st KML files to use the original timeline support in Google Earth 4.  If you don’t see the timeline, you’ll need to uninstall the GE Plugin and reinstall it to get the latest version. 

Further improving custom event handling, Google has added 3 new event handler routines for capturing user interaction with the map via the GEView object: viewchangebegin, viewchange, and viewchangeend.  This way you don’t need to use a custom function like the one we demonstrated previously.  

New methods for getting the current view bounds and for determining the streaming status for imagery and terrain are also available.  

Google Earth Enterprise customers get the ability to configure Plugin instances to use their custom Google Earth servers – providing Enterprise customers the option to use the GE Client, GE Plugin, and Google Maps as ways to disseminate custom datasets.  Google has updated the API documentation and posted Release Notes for the upgrades.

New Developer Features in Google Earth 5.0

February 2nd, 2009

Google Earth 5.0 is deservedly a major applicaiton release.  While the new Ocean, Mars, and Historical Imagery features are getting a lot of the immediate attention, there are significant changes to the underlying KML engine that will enable developers to create much more featured 3rd party applications.

Google has updated their KML documentation and have highlighted new and updated features.

Here are some quick highlights:

1. New gx:altitudeMode tags which provide ‘clampedToSeaFloor’ and ‘relativeToSeaFloor’ options for overlays, placemarks, etc…  See our 3D Nautical Chart exampe at EarthNC.com

2. New <gx> tags for Animated Tours.  These tags can be used to programmatically create Tours based on the new Tour Recorder options.  You can control location, viewpoint, view time (see #5 below), balloon pop-ups, and even audio narrations – all via KML.

3. Major Upgrade to the Balloon Window HTML rendering engine

  • Now based on WebKit (as is Google Chrome)
  • Support for most CSS
  • Support for most Javascript
  • No support for cookies
  • Links to Local Content disabled by default (unless within a KMZ file) – users can override in the Google Earth options menu.  
  • Support for iframes (no cookies) – see our YouTube Interactive Query demo
4. Polygons and Lines are now ‘hot’ clickable.  This can create user-interaction issues with complex datasets so it’s best to check previous KML to make sure it still works as expected.  Polygons will now autofill if normal/highlight behavior’s been set – also a potential issue if you have multiple overlapping polygons.
I’ll add additional changes as I find them.
5. You can now specify gx:timeStamps in LookAt and Camera views.  Google Earth will set the sun angle and historical imagery accordingly.  New documentation in the KML Time reference.

Interactive YouTube Search within Google Earth

February 2nd, 2009

Thanks to new features in Google Earth 5, we can now provide an interactive YouTube map search capability directly within Google Earth.  Simply specify your keywords and start browsing around the world for matching videos.  You can change your keywords at any time directly from your Google Earth ‘Places’ menu.

Get Started

Follow these simple steps to get started:

  1. Download and Install Google Earth 5 if you haven’t already from http://earth.google.com
  2. Create a starter query at the Maplify YouTube Map Search Page
  3. Get your Google Earth network link by clicking the ‘Get Google Earth File’ button
  4. Open the network link in Google Earth and browse away

To change your keywords in Google Earth, just click on the ‘Maplify YouTube Query Control’ link in your Google Earth places menu, update your keywords, and move the map to refresh the query.

When moving the map, the YouTube layer will update roughly 5 seconds after you’ve stopped moving or zooming.

Create a Simple MoveEnd Event Listener for the Google Earth API

November 21st, 2008

The Google Earth API provides a rich toolset for developers to create custom content and interfaces within Google Earth’s rich 3D world.  For existing Google Maps developers, many of the Earth API’s methods are similar and previous Google Maps mashups can be ported – but not all.

While working on an upcoming project, we discovered that the current Earth API lacks the nice ‘moveend’ event listener found in Google Maps.  With some pointers from the Google Earth team (thanks Mano!), we developed our own simple ‘moveend’ listener based on the ‘frameend’ event which is supported.

What is ‘frameend’?

frameend is an Earth API event which fires anytime the map image frame is re-rendered (ie when the map view changes).  Unlike the Google Maps ‘moveend’ event, the frameend event fires continuously during a move.  This is great for some applications as it gives a nearly continuous event stream, but doesn’t work so well for functions that you might want to rate limit (like creating custom data based on the view center).

Since we needed to extend frameend in any case, we went ahead and added a few extra parameters that can be adjusted to fine-tune the refresh parameters.  In our new function, you can configure the following:

  • Minimum movement requirements in Latitude or Longitude
  • Minimum zoom change independent of a Lat/Lon change
  • Minimum time since last update to rate limit calls to our follow-on function

Try It Out and Get the Sample Code:

Try it out with our Interactive Google Earth API MoveEnd Event Listener Demo .  You can adjust the default movement thresholds to get a feel for how various settings change the event behavior.  View the page source for a look at the sample code implementation.

Have your own example?  Please drop us a line at feedback@maplify.com so we can feature it also.