Wednesday, July 7, 2010

Summer Reading Fun


Six months ago, we released a bevy of new articles to help with your coding through the dark winter months. OK, they were not so dark South of the equator, but here in Mountain View, well, it rained a few times. Anyway, now that it’s winter South of the equator, and for all of you developers in the North who can’t go out in the sun, we have released your summer reading list. These articles are hot off the digital presses, so enjoy them while they’re fresh.

Fun with MVC Objects This article presents a basic introduction to using MVC objects within V3. You will learn how to use the Maps Javascript API V3 MVC framework to create objects that automatically respond to state changes. You will build a resizable distance widget and by the end, you'll have a greater understanding on what MVC objects are, how to use them, and why they're just so "awesome".

Geocoding Strategies Ever wondered whether you should use client-side or server-side geocoding? Actually, if you haven’t, you should and this article is for you. In it, you’ll learn why client-side geocoding is so cool, and when and even if you should ever use server-side geocoding.

Using Google Sites to Host Your KML A couple of years ago, we released an article on hosting KML on Google Pages. Well, Pages is no more, and has become Google Sites. This is an article for a beginning developer who just wants to put their KML up on the web.

External Article: Google Maps API v3: Developing for Mobile Devices Chad Killingsworth, who presented with me at Google I/O in our Map once, map anywhere session, has a great article up summarizing some of the lessons he has learned about developing Google Maps API applications for V3. We added a link to his article on our articles page for the Google Maps API.

So enjoy your summer reading! We’re doing our best to prevent your sun burn.

Mano Marks, Geo APIs Team

Top 5 Video Game Maps


Ancaria is a magical continent populated by various races of dark elf, wood elf and vampires. Luckily teams of cartographers have now traversed and mapped the vast desert and lava-ridden plains in the south and the mountains of the north.

Sacred is an action role-playing game for Microsoft Windows. Using Google Maps and some custom map tiles someone has created two Google Maps mashups of the game world.

The Google Maps API v2 Map of Ancaria includes map markers showing the locations of employees in the game. The new Google Maps API v3 Map of Anacaria shows the locations of all the game dungeons.

The Calgary Stampede on Google Maps


Apparently during the Calgary Stampede it is traditional to give out free flapjacks for breakfast. Thanks to this Google Map you can now find all the establishments giving away free breakfasts in Calgary during the Stampede - and that's a lot of flapjacks.

The map can be searched by date and by distance. You can click on the 'Today's Flapjacks' link to view the locations where you can get free flapjacks today.

The map also features a very cool hand-drawn style border. Happy eating folks!

If you've left your horse at home you can still get around Calgary thanks to this live bus tracking map.

Using the map you can view all the bus and C-Train routes in the city. When you select a route you can view all the stops on the route and also see the location of all the buses as they are tracked in real-time.

Whilst in Calgary you can always find the nearest points of interest thanks to this Calgary Google Maps mashup.

The map lets you select from a number of categories to view restaurants, galleries, hotels etc in the city.

Calgary's official tourism website has a great Google Map to help you find places to stay, places to eat, places to shop and places to play.

More students using SketchUp to model their home town


I love hearing stories about students in school using SketchUp to model their city, like these schools that we mentioned back in May. Not only is it a great learning experience for them, but it helps make Google Earth more useful for everyone.
GEB reader Jiri wrote to tell us about his class of students age 12-15 who have been modeling their city of Trinec, CZ using Google SketchUp (view in Google Earth). Up to this point, the students have already modeled over 130 buildings in the city!
trinec.jpg
You can see details of the buildings inside this collection in the 3D Warehouse that Jiri created for the project.
If you know of other students working on similar projects, please contact us and let us know about them. I'm always excited to see these kinds of projects, and would love to showcase more of them on the site!

The World's History on Google Maps


World History is a user contributed history site. The site features a Google Maps based historical browser that lets you explore the World's history by timeline and by location.

Users of the site can add historical information and World History has also aggregated historical data from sites like Wikipedia. It is possible to search the map by location, date and by category. The categories are 'people', 'places', 'events' and 'artifacts'.

The results of a search are displayed on the map. If you open an information window you can read the historical entry directly from the map.

Google Maps v3 New Map Mashups - July 2010


Here are some of the newest v3 Google Maps

Spiggler.com Searches Twitter with your location.
Spiggler - Twitter Google v3 Map
Updates as you pan the v3 Google map nice integration with the twitter api.

Streetview Inside
http://weblab.ab-c.nl/streetview v3 google map


Location Search Tool for Twitter
Find Geo-Twitter comments via this v3 Twitter Location search Google Map



The Grand Canyon - v3
Maptiler Custom v3 - The Grand Canyon
Using USGS DRG tiles as a custom tiled Google Maps v3.

Game:Map of Ancaria
Map of Ancaria_v3 Google Maps
Very well illustrated Map of Ancaria [Sacred Game] - users can switch between this main map and dungeons custom map.

Missouri State Campus Map - Mobile
Missouri State University Campus v3 Mobile Map
Clean, Fast with campus overlay implemented in v3 for mobile users.

Don't forget that you can style your own map in v3 see the previous post.

Have you made your own v3 custom map like this? Add a comment and mapperz will post an update.

Android App Surgery: "Earthquake!"


This week, rather than put someone else under the microscope, I'm going to do an Android App Surgeryon one of my own apps: Earthquake!

I hope you'll excuse the indulgence, the distinct advantage of  reviewing my own application is that I can find and point out some of the things I should be doing differently that are harder to spot without access to the code.

In an effort to see if I practice what I preach, I'll evaluate my own app according to the criteria I set out in my Google I/O presentation on Android best practices.

The App: Earthquake!

Earthquake is a reference app that uses the USGS 24hr earthquake feed to keep users informed of recent earthquakes.

Like most apps based on a data feed, the UI is centered around a ListView. The main screen is a vertically scrolling list of recent earthquakes each displaying their magnitude, times, and locations. This is enhanced by a map that displays each earthquake's location and which uses shaded circles to indicate the area likely to be affected by each quake.



Sloth and Gluttony

First the good news. All non-trivial processing is done using ASyncTasks. There are no modal "loading..." dialogs, but incremental refreshes are indicated using the default indeterminate progress indicator. Changes to the quake list are handled dynamically at runtime with the list updated with new data as it's acquired.

The earthquake feed lookup and parsing is handled within a background Service that kills itself on completion.

On the flip side, the Service uses the pre-2.0 onStart method rather than onStartCommand (here's how to support both). Because of this the Service will restart as soon as sufficient resources become available. Instead, onStartCommand should return START_NOT_STICKY, knowing that the Service will be restarted within a reasonable period of time.

Updates are handled via regular background polling - with battery impact minimized through setInexactRepeating. There is scope for using C2DM to replace this polling approach with an event driven update approach.

Hostility and Arrogance

I know several of the engineers working on the Android framework; it didn't take long to decide that second guessing their decisions was likely to have a low ROI. Similarly, watching my friends suggested that some people actually use their phones for making calls and sending SMS message (who knew?!) .

In an effort to make this app seem as native as possible and allow the system to manage as much as possible it:
  • Uses the dialog mechanism to display dialogs.
  • Application preferences are handled using Preference Screens.
  • System icons are used (where possible) for menu items.
  • The back button behaves consistently and inline with user expectations.
That said, there are a couple of areas that annoy me as a user:
Discrimination

Arguably this app's biggest sin.

The manifest doesn't declare a target SDK, nor does it explicitly declare which screen sizes are supported. As a result it's unavailable to users of small screens (such as HTC Wildfire and Sony Ericsson X10 mini/pro users). Worse, it doesn't include assets for low or high resolution displays.

There's no internationalization support, which isn't great, what's worse is that I've gotten lazy withexternalizing the strings. About half are defined in XML, the rest are string literals. There's no excuse for that.

The manifest doesn't declare which hardware features are mandatory, or which are used but optional. It uses (but doesn't require) both Location-based services and the vibrator, so to ensure it's available on the largest subset of devices both should be specified as optional in uses-feature nodes.

Beauty and User Experience

I am not a designer. If I were serious about turning this app into something I could charge for, I'd do well to seek out someone with skillz.

Even so, there's some simple improvements that would help:
  • The map is probably its most appealing aspect so it makes sense to make this more obvious. ATab Layout might be a better option, together with the ability to horizontally swipe between views similar to the Calendar or News and Weather apps.
  • The list view lacks "sparkle" - replacing the standard header bar with something that includes the logo might improve this, as would a dynamic background for each quake. A LevelListDrawablethat adjusts the background based on  the magnitude of each quake would be simple to achieve.
  • Long-pressing earthquakes should display a context menu that provides a wider range of alternative actions: such as viewing quake details (via a dialog or USGS.com), sharing a quake, or 'pinning' it to prevent it from being removed when it falls out of the 24 hour feed.
  • The map display has some unnecessary padding around the edges, and the quality of the map markers needs to be improved. Clicking on a quake marker should display an info window with actions (show details, etc.).
Generosity and Ubiquity

The app includes a Widget and a Live Folder for the home-screen, and it uses Notifications to announce new quakes. Search integration is missing though. Given that the quakes are stored in a Content Provider, it would be relatively simple to include it, both within the app and surfaced to the Quick Search Box.

It's worth considering using the send intent to let users share quake details with friends using other apps like email, SMS, Twitter, Facebook, etc.

Similarly, Earthquake doesn't expose and data or Intent Receivers, nor does it leverage Intents available from other apps. It might be worth exposing an Intent Receiver to allow other apps to show the earthquakes at a given location, or even plot the size of an earthquake on the map.

Utility

The utility of this app is likely to be in direct proportion with your distance from a significant fault line. If knowing when and where earthquake strike is useful to you, then so is this app.

Epicness

Epic is a high bar to aspire to, it's fair to say that this app does not reach such lofty heights.

Imagine your app was written by a competitor - what would you do to steal their users?

App developers take note: the easiest way to improve your app is to apply a critical and objective eye to it. I'm going to leave Earthquake as it is for a couple of weeks so that you can evaluate the app based on this review. I'll then look to implement the improvements I've suggested here.

maps of world

maps of world : Maps of every place of tourism and sports in the world

The Victorian Bushfires on Google Maps


The bushfires of 7 February 2009 were the worst in Australia's history. The Australian Broadcasting Corporation has created an amazing Google Map to tell the stories of the Victorian bushfires by those that actually experienced it.

ABC has collected hundreds of accounts of the day and the fire's aftermath from residents of the fire-affected communities, volunteer fire fighters, journalists, politicians, tourists and others. This Google Map allows users to browse these stories, videos and photographs by location and by time.

The timeline allows you to browse the submitted stories on the map by time. The initial view allows you to select any range of time from the 7th and 8th Feb 2009. If you select the next button you can also select a time range from the days, weeks and months after the fires.

All the multi-media content can be viewed directly from selecting the markers shown on the map.

links for 2010-07-07



  • Interesting article explains how a slew of new satellites is keeping better tabs on polar ice.

  • Loopt now lets you download a KML file containing your 30-day location history. Which is great. Not so great is that Loopt is unavailable outside the US. For a location-based company, that's a bit unfortunate, no?

  • "Zoom in on your roof" is an interactive map provided by the city of Antwerp that lets you check the efficiency of your roof insulation. It's a wonderful neogeographical innovation, well executed, addictive and easy to use -- even if you don't speak Flemish:-)

  • At one point, Kurt writes: "It's too bad that in Google Earth, you can't put a GeoRSS in a Network Link." Yes it is.