Google Maps Mashups IIL

Blogabond


Blogabond is a neat application that allows anyone to create their own travel blog with an accompanying Google Map that shows the location of your blog posts and photographs.

Blogabond is very easy to use. After you create an account you can create a new travel blog. This simply involves choosing a location, adding your text and uploading any photographs that you want to share.

When finished your travel blog is presented on its very own page. The blog includes a Google Maps header that displays markers for all of your entries. The map can therefore be used as an index for your blog. You just need to click on a map marker to view the entry for that location.

Discovery Channel – Remembering 9/11


Nearly everybody can remember where they were when they heard that flight 11 had flown into the World Trade Center’s North Tower and that the South Tower had collapsed.

The Discovery Channel has created this Google Map to commemorate the collective presence and kindness of strangers that got many people through the unimaginable horrors they witnessed that day.

On the 10th anniversary of 9/11 the National Geographic Channel is inviting everyone to rebuild this collective history of 9/11 by sharing their personal stories on an interactive Google Map.

The Remembering 9/11 Facebook app allows users to post brief accounts of their 9/11 experiences and mark their stories on the interactive map. Users are also able to explore all posted anecdotes by location and filter stories to see their friends’ stories and share comments.

The app is available worldwide in nine languages.

Opus Dei – Iniciativas Sociales

This Google Map from Spain’s Opus Dei shows some of the social initiatives undertaken by the organisation around the world.

You can filter the initiatives shown on the map by category. The social initiatives are divided into four categories, ‘youth’, ‘health’, ‘education’ and ‘social promotion’.

If you click on a map marker you can read details about the initiative shown. Many of the markers include videos about work being done by Opus Dei at that location. Each information window also contains a link to read further details on Spain’s Opus Dei website.

Amud Anan

Amud Anan is an online travel guide and geographical encyclopaedia for Israel.

The map uses the Google Maps API with topographical map tiles of Israel to display user submitted points of interest. As well as adding points of interest users can add routes and trails to the map.

The map is in Hebrew only and is available as a desktop and as an iPhone and iPad application.

Hiroshima Panoramas

360Cities has posted five amazing and shocking 360 degree panoramas of Hiroshima in Japan, taken just six months after the USA dropped an atomic bomb on the city.

Panning the photos around 360 degrees and viewing the total destruction as far as you can see powerfully conveys the effect that the bomb had on the city. According to Wikipedia ‘4.7 square miles (12 km2) of the city were destroyed (and) Japanese officials determined that 69% of Hiroshima’s buildings were destroyed and another 6–7% damaged.’

The panorama taken by Shigeo Hayashi clearly shows what is now the Hiroshima Peace Memorial. Last week Google released imagery of the Peace Memorial that allows you to view the interior of the memorial on Google Maps Street View.

Localley

Localley is a tool that broadens the functionality of Facebook Places by letting you check-in to places using a date and time in the future. It also allows you to view your check-in history on a Google Map, visualise your friends’ latest check-ins and view the people who are checked in around you.

Localley has now released checkintab for Facebook pages. If your business or venue has a Facebook account you can use checkintab to allow users to check-in directly from your Facebook page.

Once you add checkintab to your Facebook account a ‘check-in now!’ button is added to the right hand menu of your page. When visitors click on the button they can check-in to your business and venue without having to leave your Facebook page.

Your visitors can even create a future check-in and inform their friends that they will be at your venue at a specific time. This is a great way to get users to share and promote your business with their Facebook friends.

Foodspotting

The food sharing app Foodspotting has passed one million downloads. The Foodspotting apps lets you take photos of your favourite dishes and share them with the world. Foodspotting is a great way not just to find a good restaurant nearby but to find the best rated dish in a restaurant.

Don’t worry if you haven’t downloaded the app to your smart phone as you can also browse all the dish photographs and reviews on the Foodspotting website. If you enter a location you can view all the dishes shared near that location on a Google Map.

Click on one of the dish photographs displayed on the map and you can view where the picture was taken and how many people have rated this dish.

The Growth of U.S. Newspapers

For the last few years Paper Cuts has been documenting layoffs and buyouts at U.S. newspapers with the help of Google Maps.

This year’s map from Paper Cuts already shows over 2,500 layoffs at newspapers throughout the country. As newspaper readership and advertising revenues continue to dwindle I suspect Paper Cuts will become busier and busier mapping the loss of newspaper jobs and newspapers.

Whilst Paper Cuts seems to be mapping the decline of American newspapers The Growth of U.S. Newspapers has created a great map visualisation that documents the growth of newspapers in the U.S. over three centuries.

.

The visualisation from Stanford University plots the growth of newspapers since the publication of ‘Publick Occurrences Both Forreign and Domestick’ in Boston in 1690. It is possible to filter the data shown on the map by date, language of publication and by frequency of publication.

Around France

Randonee dans l’Ain is a really nicely designed website promoting hiking, horse riding and bike trails in Ain, an area of the region Rhône-Alpes in France.

Each of the trails can be viewed on Google Maps. The route of each selected trail is displayed on the map and you can select to view restaurants, activities, photos and accommodation along and near the trail.

Each trail also comes with an elevation chart and with information concerning the route’s length and the approximate time it takes to complete.

Metro Vancouver Mapped

The Vancouver Sun has put together a great series of 21 interactive Google Maps looking at all aspects of life in the city based on the 2006 census. Metro Vancouver Mapped uses Google Fusion Tables to create heat maps that explore answers given by residents in the 2006 census.

The maps examine the demographic differences in the city and allow you to see in which areas residents have the best educational attainment, the best commute times and the highest property values etc.

Each map is accompanied by a brief analysis of the census results.

Around London

London is a very large city that can be very confusing to travel around, especially if you are a visitor to the UK capital. CityMapper London can help you navigate the city by providing you with bus, subway, cycling and walking directions. Or, if you want to get a taxi, it can give you an estimated cost for your journey.

To get directions the user just needs to add their starting point and destination, either by text input or by simply clicking on the map, and then selecting the mode of travel.

If the user selects bus or tube directions CityMapper London shows you the route of your journey on Google Maps and in the sidebar explains which stops you need, any transfers you need to make, the estimated time of your journey and the cost.

The biking directions show the user the locations of London bike hire stations near your start point and how many bikes are currently available at each station.

Both the walking and biking directions give the user an estimated time for the journey and an estimation of the number of calories that will be burnt.

Wandercast.TV

Wandercast.TV is a travel video website that aims to allow you to “Watch where you’re going before leaving home.”

If you are planning a trip you can search Wandercast.TV for great places to visit and view a video of the location before travelling. Alternatively you can of course just browse Wandercast.TV to virtually visit places in the world that you may never get a chance to visit for real.

Each video on Wandercast.TV is accompanied by a Google Map showing the location where it was shot. If you have your own travel videos then you can also upload them to the Wandercast.TV map.

via:googlemapsmania

The Exceptional iPhone SIRI

 

Siri, or something similar, would become the norm for interfacing with smart phones and in doing so it would define the future of local search (and everything else). Well it seems to have succeeded on the everything front but just not on the local search front. The Siri natural language interface is a metaphor for interaction that will supplant the need for typing and can provide a hands free way to interact with smaller devices when typing is dangerous (ie driving) or awkward (ie all the time).

It works incredibly well and as John Gruber noted: “I wouldn’t say I can’t live without Siri. But I can say that I don’t want to.” It is that good.

It is hands down the best way to speedily create and send text messages regardless of whether you are driving or sitting. It is the best way to get driving directions detailed on the iPhone Google Map app. It is the best way to search the web whether you want to use Google, Yahoo or Bing. In fact it even fixes what was so miserably wrong with voice search in the Google app.

Its ability to understand what you want and what you are saying is uncanny. Even with background noise. I am a convert and while I will most definitely use it while driving, it may very well become my preferred interface for many other things as well.

It truly is a harbinger of a new level of functionality for interacting with your phone (and any small device for that matter). I won’t leave home without it.

EXCEPT FOR LOCAL SEARCH.

Siri can either interact with other apps or it can answer some things directly. For example you can say “Text Aaron I will be late picking you up” at which points it interprets your instructions, performs a voice to text translation, double checks its accuracy with you, understands that you want to text and then sends the note via the iMessage app. With some data types it will just answer you inside of the Siri environment. That is the design for interaction with both Wolfram Alpha and Yelp.

Danny Sullivan noted yesterday that when searching for local businesses, Siri accurately provides a list from Yelp but then doesn’t allow you to call the location, look at reviews or even get more details. For whatever reason, Apple and Yelp have decided to limit the functionality of the local search in such a way so that it is essentially useless, forcing a user to a different data source for the information.

Having marvelled at Siri’s capability, it is easy to imagine saying to Siri – “make a reservation at the Ho-Ste-Geh restaurant for 2″, “read me the reviews for the Rennas” or even “Add the Robins Nest’s contact details to my address book”. But the local search capability, doesn’t do any of that.

There are alternatives for a user of Siri to get local information. You just need to use the web search functionality of Google, Bing or Yahoo (use one or all three) by saying “Look on the web for a nearby restaurant” or “Google breakfast restaurants”. On the plus side, it no longer takes that 6 touches that Google voice search required to make a hands free call. Now when doing a local recovery search on Google it takes just one touch after the voice interaction to complete the call. And Siri does such a significantly better job of getting the search right the first time than Google voice search ever did. You wonder where Siri has been hiding.

But in limiting the functionality of the built in local search functionality, Apple and Yelp are missing a chance to change user behaviors. In not changing user behaviors from the gitgo they may miss the opportunity to break the habit later on. Natural language voice search on the smartphone is a long game, and the 1 million iPhones so far sold are just a drop in the bucket of the market. The real game is yet to come.

There is every reason to believe, seeing what else Siri can do, that increased local search functionality will arrive. But regardless of whether this was Yelp’s choice or Apple’s, from where I sit, this is an opportunity lost to win a battle in a long war.

Deleting Blank Tiles

 

Creating raster tilesets almost invariably leads to the creation of some blank tiles – covering those areas of space where no features were present in the underlying dataset. Depending on the image format you use for your tiles, and the method you used to create them, those “blank” tiles may be pure white, or some other solid colour, or they may have an alpha channel set to be fully transparent.

Here’s an example of a directory of tiles I just created. In this particular z/x directory, more than half the tiles are blank. Windows explorer shows them as black but that’s because it doesn’t process the alpha channel correctly. They are actually all 256px x 256px PNG images, filled with ARGB (0, 0, 0, 0):

image

What to do with these tiles? Well, there’s two schools of thought:

  • The first is that they should be retained. They are, after all, valid image files that can be retrieved and overlaid on the map. Although they aren’t visually perceptible, the very presence of the file demonstrates that the dataset was tested at this location, and confirms that no features exist there. This provides important metadata about the dataset in itself, and confirms the tile generation process was complete. The blank images themselves are generally small, and so storage is not generally an issue.
  • The opposing school of thought is that they should be deleted. It makes no sense to keep multiple copies of exactly the same, blank tile. If a request is received for a tile that is not present in the dataset, the assumption can be made that it contains no data, and a single, generic blank tile can be returned in all such instances – there is no benefit of returning the specific blank tile associated with that tile request. This not only reduces disk space on the tile server itself, but the client needs only cache a single blank tile that can be re-used in all cases where no data is present.

I can see arguments in favour of both sides. But, for my current project, disk and cache space is at a premium, so I decided I wanted to delete any blank tiles from my dataset. To determine which files were blank, I initially thought of testing the filesize of the image. However, even though I knew that every tile was of a fixed dimension (256px x 256px), an empty tile can still vary in filesize according to the compression algorithm used. Then I thought I could loop through each pixel in the image and use GetPixel() to retrieve the data to see whether the entire image was the same colour, but it turns out that GetPixel() is slooooowwwww….

The best solution I’ve found is to use an unsafe method, BitMap.LockBits to provide direct access to the pixel byte data of the image, and then read and compare the byte values directly. In my case, my image tiles are 32bit PNG files, which use 4 bytes per pixel (BGRA), and my “blank” tiles are completely transparent (Alpha channel = 0). Therefore, in my case I used the following function, which returns true if all the pixels in the image are completely transparent, or false otherwise:

public static Boolean IsEmpty(string imageFileName)
{
  using (Bitmap b = ReadFileAsImage(imageFileName))
  {
    System.Drawing.Imaging.BitmapData bmData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, b.PixelFormat);
    unsafe
    {
      int PixelSize = 4; // Assume 4Bytes per pixel ARGB
      for (int y = 0; y < b.Height; y++)
      {
        byte* p = (byte*)bmData.Scan0 + (y * bmData.Stride);
        for (int x = 0; x < b.Width; x++)         {           byte blue = p[x * PixelSize]; // Blue value. Just in case needed later           byte green = p[x * PixelSize + 1]; // Green. Ditto           byte red = p[x * PixelSize + 2]; // Red. Ditto           byte alpha = p[x * PixelSize + 3];           if (alpha > 0) return false;
        }
      }
    }
    b.UnlockBits(bmData);
  }

  return true;
}

 

It needs to be compiled with the /unsafe option (well, it did say in the title that this post was dangerous!). Then, I just walked through the directory structure of my tile images, passing each file into this function and deleting those where IsEmpty() returned true.