Google Maps Mashups 9

Google Maps meet Maori Maps

This Google Map displays the locations of the tribal marae of Aotearoa New Zealand. A marae is a communal or sacred place, the centre of Maori identity and activity.

Maori Maps is a nationwide map of Aotearoa marae, with photos of each marae, contact and background information, and photographs. Currently the map displays marae in the Tai Tokerau (Northland) and Tamaki (Auckland) regions. Eventually the map will show all of Aotearoa’s more than 800 ancestral marae.

Maori Maps

Google Aquires Dealmap

Dealmap’s biggest deal of today was selling itself to Google.

Websites offering daily deals and coupons have been one of the biggest trends in the location sector for a couple of years now. Google has been pretty keen to get into this market, which has so far been dominated by Groupon.

However Google has, until now, been painfully slow in rolling out its own Google Offers site. Google Offers launched in April promising daily offers – but the deals were initially only available in Portland, Oregon. Since then Google have rolled out the service to other areas but it is still limited to New York, San Francisco, Oakland and Portland.

By acquiring Deal Map Google can now access Dealmap’s deal exchange distribution network and presumably hopes to tap into Dealmap’s over 2 million users.

Google is not the only big player to have had an eye on Dealmap. Back in March Dealmap signed a deal with Bing to display deals on the homepage of

For now Dealmap says it will continue as a distinct service. However my guess is that at some point in the future Dealmap and Google Offers will morph into one product (probably called Google Offers).

Google Maps at the Fringe

The world’s largest art festival the Edinburgh Fringe is due to start on Friday.

With over 2,000 different comedy, musical and theatrical shows taking place in over 250 different events what is needed is a Google Maps guide to the Fringe.

Enter stage right – Gigglemaps.

Using Gigglemaps you can click on any Edinburgh Fringe Festival venue and view the next five performances. The map includes a menu that allows you to filter the venues by category, such as comedy, cabaret etc.


The Google Maps Guide to Hiking in Norway is a complete guide to hiking in Norway. The site features hiking routes, cabins, a calendar of events and a hiking map built with the Google Maps API.

As well as the usual Google Map views the map features detailed topographical map tiles. Using the menu in the map sidebar you can select to view cabins, summer trails, winter trails, videos, articles and even current skiing conditions.

Kart –

Boston’s Buses Live on Google Maps

With TransitSpy you can follow Boston’s MBTA buses live on Google Maps.

Using the sidebar you can select any combination of MBTA bus routes and view in real-time the position of the buses on those routes. As well as the live buses all the stops on a route are displayed on the map. If you click on a bus-stop’s map marker you can see how long you will have to wait until the next bus arrives.

TransitSpy MBTA

Loads More Birds Eye View


Google Maps today has a lot more aerial view imagery. The update includes new 45° imagery in the U.S., Canada, Germany, Argentina and Spain.

Parliament, Ottawa

Here’s a list of the updated cities:

Augsburg, Germany. Barstow, CA. Bartlett, TX. Big Bear, CA. Blackstone, VA. Catalina Foothills, AZ. Córdoba, Spain. Delano, CA. Desert Hot Springs, CA. Richmond, VA. Elgin, TX. Healdsburg, CA. Helendale, CA. Hemet, CA. Houston, TX. Mendoza, Argentina. Midlothian, VA. Napa Valley, CA. New Braunfels, TX. Ojai, CA. Ottawa, Canada. Pensacola, FL. Porterville, CA. Plant City, FL. Rancho Del Lago, AZ. Rosario, Argentina. Santa Clarita, CA. Sarasota, FL. Taylor, TX. Temecula, CA. Treasure Island, CA. Troy, IL. Twentynine Palms, CA. Wakefield, VA. Yucca Valley, CA.

Rathaus, Augsburg


Create maps using the My Maps tab

Create your own custom map in Google Maps using the My Maps feature. Add placemarks, paths and shapes to the map, as well as photos and You Tube videos. You can even embed the map in your website or blog, or view it in Google Earth.

Modular plug-in for customizable infobox control

As many of you know, the Bing Maps Locator Wizard is a portal that allows you to generate a Bing Maps Locator in minutes, and then have it hosted in Windows Azure for free. One of the steps in the wizard allows you to customize the style of various elements of the locator.
I was recently working on the wizard and required a highly customizable infobox control that would likely be put in an iframe. This article highlights some of the key features of the modular plug-in we created to allow for this requirement. The result far exceeded our expectations and InKnowledge has since released the code to the Bing Maps community so you can use it in your own applications. Feel free to download the complete source code, with sample implementations and documentation.

Modular Design The Bing Maps 7.0 Control was released last fall and is a complete rebuild from the ground up when compared to previous versions of Bing Maps. We have seen huge improvements in API performance and the size of the control. One feature of the map control was to use a modular framework; this allows you to register and load modules as they are needed. One result of this is faster loading speeds. Those interested in creating your own reusable modular plug-ins for Bing Maps should have a look at the documentation.
Custom Infoboxes When the 7.0 Control was originally released there were no infoboxes. The infobox control that Microsoft soon added was a bit different from past versions and was designed to be more flexible. While this is a great improvement, there are a couple of caveats to using this infobox control. The first is that the infobox always points up and to the right and does not reposition itself. This means that infoboxes that are anchored near the top are displayed outside of the map. This can be an issue if the map is being put in an iframe or the map is placed at the end of a webpage. The second caveat is that using custom HTML requires you to also generate the infobox arrow and content area, in addition to the content you want to display. Ideally we would be able to put custom HTML into the frame of the built-in infobox.
Positioning Our goal was to have the content positioned in the center of the map to ensure users can see the infobox. The solution: break the map into quadrants and modify the layout of the infobox such that the content is positioned in the middle of the map. For example, if the anchor point of an infobox is in the lower-left part of the map we want the infobox to be positioned to the right of the anchor point and pushed up. The easiest way to figure out what quadrant the anchor is located in is to convert the anchor coordinate to a pixel coordinate relative to the upper-left corner of the map. To determine if the anchor is to the left or right of the center of the map, simply check to see if the x-pixel coordinate is more or less than half the width of the map. Similar logic can be used to figure out if the anchor is above or below the middle of the map. Once we know if it is left or right of the center and above or below the center, we simply need to place the infobox so that it is in the opposite direction.
The Infobox Arrow One common issue that developers run into when trying to create customizable infoboxes is with the infobox arrow. In the past, these were almost always images that required edits if you wanted to change something as simple as the color. After a lot of research and experimenting, I found an ingenious solution: CSS borders. Years ago, when the web was young, webpages used to use really big borders to make things look like they were in a frame. As time went on the borders got smaller and smaller to the point where they are either not used or only 1 or 2 pixels wide. So where am I going with this? Well, if you look at a picture frame you might notice that the sides of the frame are connected in the corner at a 45-degree angle. This angle also occurs with CSS borders. If we take this and use a bit of fancy styling, we can modify the color and width of four edges of the border CSS class and generate an arrow. Not only can we generate an arrow, but with a little bit of logic and CSS styling, we can control the width, length. and color of the arrow. Check out this good article on creating angled shapes using the border style.
Additional Features The API for this custom infobox control is pretty basic. There are only four public methods that are exposed: hide, show, getOptions, and setOptions. The show method is pretty straightforward; it takes in a coordinate and content (either text or HTML). The content will be placed inside the infobox frame, rather than replacing it. By making the input generic we are able to use this infobox with pushpins, polylines, polygons, or on its own. As for options, not only can you set the dimensions and color of the arrow, you can also:
•    Set the background color of the content area of the infobox.
•    Set the color of the border on the infobox.
•    Specify minimum width and height for the content area.
•    Specify an offset distance from the anchor point.
•    Hide the arrow.
•    Hide the default close button.
•    Tether the infobox. The tether option allows one of two user experiences. When enabled the infobox will stay open and reposition itself as you move the map around until you close it. When disabled, the infobox will close when the map moves.
Implementing the Plug-in Implementing the custom infobox is easy. The first thing you must do is register the plug-in with the map control. You can do this using code similar to the following:
var map, customInfobox;
function GetMap() {
map = new Microsoft.Maps.Map(document.getElementById(“myMap”), { credentials: “Your_Bing_Maps_Key” });
//Register and load the Custom Infobox Module
Microsoft.Maps.registerModule(“CustomInfoboxModule”, “scripts/V7CustomInfobox.min.js”);
Microsoft.Maps.loadModule(“CustomInfoboxModule”, { callback: function () {
//Create an instance of the custom infobox control
customInfobox = new CustomInfobox(map);
To display an infobox, specify a coordinate and some content like the following:, “<b>Hello World</b>”);
We hope you find the plug-in helpful.