CLEAR Research

Maps on the Web

Mapping Mashups

What are they?

A mashup is the process of taking two (or more) different things and mixing them together to create a new, unique thing. In web development, a mashup is a web page or application that uses and combines data or functionality from two or more sources to create new services. The "sources" can be mapping applications like Google Maps, Bing Maps or Google Earth and data sources like online photos, websites, KML, ArcGIS data services, or spreadsheet and database records. Data sources and online mapping applications, which often are presented in an Application Programming Interface or API, are mashed together on your vastly improved website. Hence the name, mashup. Way cool, right?!

Wait, what is an API? and KML?

An API is an Application Programming Interface. Simply put, this is a bundle of coding functions and tools used to develop or link to another software program. Ok, more simply put, an API is a sort of translator used by a computer or internet program to talk to other programs. An API bundle of code is a key ingredient for creating a mapping mashup.

KML stands for Keyhole Markup Language (Keyhole, Inc. is the language developer). In plain English, a KML is a file of three-dimensional geographic information formatted in a language based on XML (Extensible Markup Language). When a KML gets really large, it can be compressed in sized and zipped into a KMZ. KML can be created using a number of different techniques that range in difficulty from super-easy to oober-complex. If you are already a GIS guru, it's easy to convert GIS data directly to KML. If you just like to point and click and press the Save button, no worries, you can create KML directly in Google Earth. Check out other sections of this website to learn more!

Do I really have to understand all of those computer terms to make a mashup?

No. If you are not a computer whiz, don't fret, you can still make yourself a beautiful mapping mashup without needing to know how to use APIs, KMLs or databases. Where should you start? How about a "rapid mashup development tool" like Google My Maps or Both of these resources allow a user to create a mapping mashup using a simple WYSIWYG (what you see is what you get) interface. It couldn't be easier!

Ok, so how does it really work?

You have a "wouldn't it be cool if..." idea for your website and you kind of understand what we're talking about with mashups and APIs...what now?

1. A mashup requires a data source or program that you want to use in combination with something else. This can be an API, a bundle of functions that allows you to communicate with another program. This access saves you having to become a computer programmer and allows you to leverage cool programs already in existence for your own use. There are several APIs available online for many different programs that already exist, such as Google Maps. Again, the API is not the program itself, but a sort of translator giving you access to that program.

2. Once you have one program, like an API, you need another program or data source to "mash" with the first program. This could be a database of census information, a collection of photos, or even a complex online program like YouTube.

3. Finally, you will need a user interface - a website page or third program where a user can access and manipulate the mashup to get useful information. If we are mashing Google Earth and a KML together, we could use Google Earth as the interface. Or, we have the option of putting a Google Earth API and the same KML on our webpage, and using our website as the user interface. Either way, the user is able to access both the functionality of Google Earth and the data in the KML in a new way!

Now that's COOL!

So I want to combine two things to get a third...what's an API, again?

This video was embedded from ZDNET. Embedding is very handy, but is not entirely a mashup in and of itself as we have not "mashed" it with anything else. If we embedded this video on a Google Map we're talking!

What about some examples?

National NEMO Network LID Projects - Mashup using the Google Maps API and data from a Low Impact Development (LID) database
NOAA Coastal Services Center Digital Coast - Mashup using the Google Maps API and various KML files

Mashups are the best way to create new online mapping tools without being a computer programmer. If you are, all the better - the main limitation is your own creativity!

This mashup is an example of an online mapping tool created by the National NEMO Network. The mashup was created on another website and simply embedded here.