The MangoMap Report: Cool New Features and Improvements

You guys have been giving us some great feedback and we’ve been listening. In this release we’ve added a whole range of new features and improvements all of which are requests from you, our users.

GeoLocation Tool for Mobile

The GeoLocation tool allows your users to locate themselves on your map. Just a single click and the map will zoom to their position, draw a circle to show them the accuracy of their position and even track them when they move. The tool also works in the browser on your desktop or notebook.

image

Measuring Tool

Many of you had asked for this tool and here it is. The measuring tool allows you to draw on the map and be told the distance of the line in miles, feet, kilometers or meters.

image

Copyright Tool

This is a simple feature but an important one none the less. You can now add your own custom copyright text to the map. The text is displayed on the bottom right corner of the map next to the legend.

image

More Algorithms to Define Class Breaks

We’ve now made it even easier to create graduated legends by adding additional algorithms. You can now choose from Quantile, Jenks, Heads/Tails and Equal Interval.

image

Change Outline and Opacity of all Classes Simultaneously

In the last release we added support for raster which was the number one requested feature on our customer suggestion site. The ability to change outline and opacity for all classes simultaneously has been number two on that list for too long.

Now for category and quantity legends if you want to change the outline style or fill opacity you no longer need to update every class break, we now just have one setting that will apply the change to all classes.

image

Change the Order of Category Class Breaks in the Legend

You can now drag and drop the different classes in your legend in order to display then in the exact way you would like.

We’ll be releasing another new version in the coming weeks that will add even more cool features and improvements. If you have and suggestions for features or improvements be sure to let us know!

Comments

A Map of Irish (Gaellic) Speakers in Ireland

Comments

3 Most Common Web Map Legend Mistakes and How to Avoid Them

Being the founder of MangoMap I think it’s fair to say that I spend more time looking at web maps than is probably healthy. In the course of a day I see the whole spectrum, from beautiful maps with interesting data and a clear message right through to “Test Map” showing a few random points and also everything in between.

One of biggest areas for improvement for most maps is the legend. Here’s my list of the three most common mistakes.

1. Not Changing the Labels in the Legend

Thanks to Shapefiles only allowing column names to be ten characters long we in the GIS world have invented a new language over the years which allows us to express complex ideas in under ten characters, which is great. The problem is that people outside of the GIS community don’t speak that special language and have no idea what “popasian” or “langnoteng” mean.

Also the default name of a layer is the name of the file which you uploaded (if you didn’t choose another name on upload). Once again most users won’t have any idea what a layer called “us_tiger_cen_2011_v2” is.

When making a web map remember to give an alias name to your layers, classes and attributes, it will make you map much more user friendly and accessible.

Good

Not Good

2. Too Many Toggle Layers in the Legend

In a regular desktop GIS we can turn all layers on and off in the legend, we don’t have to worry too much about performance as the data is on our hard drive and being displayed as vectors by a program that has full use of our computers resources. A web map is quite different, it’s sending image tiles across the internet which are displayed in the confines of your web browser which only has access to limited resources.

To be able to switch items on and off in the legend in a web map we need to stack on tile layer on top of another to achieve the same effect.  Every new layer in the stack effectively doubles the number of tiles that need to be downloaded to render the map therefore doubling the load time.

At MangoMap we get around that by offering layer groups, a layer group can be turned on or off in the legend but can contain more than one layer, all the layers in a group are rendered and sent across the internet as a single image which is much more efficient.

Layer groups are a great addition to a web map, but remember to use them sparingly in order to ensure fast load time and good performance.

Two Layer Groups = Fast

Four Layer Groups  = Slow

3. Too Many Class Breaks

This isn’t a problem that’s unique to web mapping but in the low attention span world of the internet the problem certainly is compounded. Try to keep the number of classes in your legend to a minimum, that way there will be greater contrast between the colors and the visual impact will be increased.

As I discussed in my previous post ‘Think Like a Web Designer Not a Cartographer’ we sometimes have to make concessions in terms of traditional cartography in order to create a high impact map that instantly engages the user and prompts them to explore further.

Comments

MangoMap Now Supports Raster Data!

We’re excited and pleased to announce that we have now added support for raster data!

It’s been the most requested feature on our user feedback site for a long time and it’s finally here. Raster support is available on our Silver Plan and above, if you haven’t yet upgraded you can get a free trial by clicking on the link below.

MangoMap

Comments

How-To: Crowdsourcing Map Data with Amazon’s Mechanical Turk

So it’s Wednesday night and I’m feeling a little left out because I seem to be the only person in web mapping yet to map a map related to the Winter Olympics in Sochi.

So I bit the bullet and here’s what I made:

image

Map Link

I thought I would put together a quick post about how I made this map as the data preparation part was pretty interesting.

I couldn’t find a Shapefile with the data already nicely prepared for me so I knew I would have to roll my own. I had already found a table containing the data on Wikipedia, and located a Shapefile of country bounds. The Shapefile already contained the three letter country codes so do get the medal data into the Shapefile I would need to create a spreadsheet of the medal data along with the country code then I could join the two datasets together using QGIS. I also wanted to show the flags for each country in the popup window on the web map so would also need to add a link to an image of the flag for each country.

Although preparing this data isn’t difficult it certainly is tedious and it’s also time consuming, so I decided to try letting someone else do it for me.

Enter Mechanical Turk

Mechanical Turk is a beta service from Amazon which is part of their Amazon Web Service suite of products which now powers half the internet. It allows you to create a web form with a series of questions and provide a spreadsheet (CSV) of items/features/places etc that you want the form completed for. Each form is know as a HIT (human intelligence task). Here’s the form that I created:

image

The form was pretty easy to make, it involved some very simple HTML and a sample template was provided to copy from.

Once you’ve made the form you start a new “batch” a batch is spreadsheet of the records you want processing. For me the batch was a CSV containing the names of the 38 countries that are still around and have ever won a medal at the Winter Olympics. As the “requester” you can say how much you are willing to pay the “workers” for each HIT in the batch and how long you will allow for it to be completed.

First Attempt: Fail

For my first attempt I made a bid of 20c per HIT and gave a three hour time limit. Almost as soon as I’d submitted it I could see people going to work on the task and I could also see the results as they became available.

Straight away it became clear that some workers had misunderstood the task, they were putting in the medal tally for the combined total of the summer and winter Olympics. In the results I accepted the correct ones by pressing a button and rejected the incorrect ones, almost immediately I started getting messages from the Mechanical Turk system from workers who weren’t happy about the rejection as they said my HIT definition wasn’t clear enough.

It all started to look like a bit of a mess so I canceled the batch and wrote off the $10 I’d already paid.

Second Attempt: Success

Now knowing that the form needs to be extremely clear in order to get the best results I went back added bold font and capitals to the important parts and started the batch again this time raising the bid to 30c.This time the result was amazing, within 20 minutes the batch was complete and there were only a couple of tiny errors that I could easily clean up myself.

It was very impressive, not only was this system much cheaper in real terms ($11.40) than me doing it myself it was also much faster.

Tips

  • Make your instructions EXTREMELY clear
  • Raise your bid to get faster results
  • Check and recheck the form before you start the batch

Future Experimentation

This was really just a test to check out the capabilities of this service, next time I would like to try it with a much larger dataset to see whether these results scale. 

Comments

Mapping and GIS for Absolute Beginners

At Mango I speak to several clients a week who want to produce a web map that visualises their data but are new to the world of mapping. They know what they want the finished web map to look like but aren’t sure how to get started and don’t know where to find the answers as they’re not familiar with the jargon required to put Google to work.

If this sounds familiar then you’re in the right place. The aim of this article is to give you a 10,000 feet overview of modern mapping, by the end you will be equipped with a basic understanding of how interactive maps work and you will have a basic understanding of the common jargon that you will need in order to self-study by getting the search engines to reveal their secrets.

image

Geographic Information Systems (GIS)

Almost all digital maps are produced using a GIS. The term GIS is a catch all term for any system that can store, manipulate and display digital map data, they range from powerful desktop systems such as QGIS and Esri’s ArcGIS through to based systems such as MangoMap.

GIS Data Formats

The two main types of data used in a GIS system are vector and raster. Vector data is by far the most common form of map data and is made up of points, lines and polygons that are drawn to represent physical features or locations. Rasters are images such satellite imagery or aerial photography and are much less common.

All maps begin with data, data can be stored in a range of formats such as Shapefile, KML, GeoJSON and many others. All vector map data formats share one thing in common, they contain spatial data and attribute data. The spatial data contains the geometry that explains where a feature is located on the earth and the attribute data tells us additional information about that feature for example it’s name, size or even the number of people it contains that have eaten a chicken curry in the last month.

The de facto standard for storing and exchanging map data in the GIS world is the Shapefile. Despite it’s name a Shapefile is usually made up of four files (although it can be more). It’s not important that you understand what each of those files does but if you wish to find out more you can checkout this Wikipedia entry.

If you are new to mapping you likely don’t have a Shapefile, it’s much more likely that you have a spreadsheet where each record contains an item that could be placed on a map such as an address, zip code or county name. A spreadsheet like this is effectively only attribute data it doesn’t contain any usable spatial data but if the spreadsheet contains a column with addresses or zip codes it can easily be converted to a Shapefile. Here some tutorials to help you do that:

How to Make a Web Map from a List of Addresses or Locations in a Spreadsheet

Making a Web Map from a Spreadsheet Containing Zip Codes, Counties or State Names

GIS is Data Driven

GIS maps are data driven, what this means is that to change the presentation of a map we make styling rules called “classes”. For example if we wanted to map a dataset that showed how people voted by state in the election we would make a class that would make states on the map red if they voted Republican and blue if they voted Democrat. Let’s say the way a state went changed on the final count and we needed to change the color, we wouldn’t edit the feature on the map, we would update the data the map is using and the map will update itself.

Legends

The classes discussed in the previous section are commonly displayed on the map as a legend, the legend lets the user of the map know what they are looking at. The three most common types of legends are single symbol, graduated colors (aka choropleth map, heat map) and category.

Single symbol will give each feature in a dataset the same styling. This might be used for rivers, roads, city locations or other feature set where the difference between each features is not of interest.

Graduated colors is used when a column in the data contains numbers and we want to change the strength of the color based on the size of the value. An example of a graduated color legends could be a map that shows the poverty rate by county where light red indicates low poverty and dark red contains high poverty.

Categories allow us to give each feature a different color based on an attribute. An example might be a map showing the location of fast food restaurants in your town, where by McDonalds is Yellow, KFC is red and Subway is green.

GIS Analysis

Often the purpose of a map is to answer a question through a visualisation. With maps it’s far easier to identify patterns and clusters than it would be using a spreadsheet or a database. Web mapping tools like Mango allow you to perform basic analyses such as finding features that match certain criteria.

For more heavy analysis that involve comparing and joining multiple datasets you will often have to prepare your data using a desktop GIS system such as QGIS before uploading your data to Mango. This type of analysis is beyond the scope of this post but please read this tutorial for an example of how using a spreadsheet containing U.S colleges and a Shapefile of U.S counties you could produce a heat map showing counties by the number of colleges they contain.

That’s it for this post, you should now be familiar with the core concepts and vocabulary of GIS. For more interesting tutorial please take a moment to explore this blog.

Learn More About MangoMap

If you would like to learn more about MangoMap your can watch the getting started video below.

Comments

Making a Web Map from a Spreadsheet Containing Zip Codes, County or State Names

So here’s the scenario, you have a spreadsheet containing some interesting data about each county in the U.S and you would like to be able to make a web map from it in order to visually explore patterns in the data. 

image

This tutorial will show you how this can be achieved quickly and easily using free tools. For this example we’re going to map U.S unemployment by county.

Understanding the Data

You can download the sample data we will use here. The sample data contains five files. The first is data.csv, this is tabular data of U.S unemployment by county and contains two columns “fips” (county code) and “rate”. This data doesn’t contain any geographic information which can be mapped.

The remaining four files called counties (.shp/.dbf/.prj/.shx) are collectively known as a Shapefile. A Shapefile is the de facto standard for sharing geographic data and can be read by most mapping applications. Shapefiles with administrative boundaries for most countries can be downloaded for free online, to find this Shapefile we could just Google for “U.S county Shapefile” and we’ll be returned many sources for the data.

Loading the Data into QGIS

Now that we have our unemployment data and a Shapefile of U.S counties we need to join these two files together. For this we are going to be using QGIS which is a very popular free and opensource desktop GIS program that can be downloaded from here.

From within QGIS in the menu bar choose Layer -> Add Vector Layer and choose counties.shp from the tutorial sample data. You will now see a map on screen showing the counties. If we right click on “counties” in the left hand layer panel and choose “Open Attribute Table” we will be able to see the information contained in the attribute table for the counties Shapefile. As you can see each county only has one piece of data and that’s the fips code (unique county ID).

Next we need to import our CSV file by pressing Layer -> Add Delimited Text Layer and choosing data.csv from the downloaded sample data. You will also need to set the file format to CSV and set the “Geometry Definition” option to “No Geometry” then press OK.

Joining the Shapefile and the Spreadsheet

Now it’s time to “join” the datasets. Right click on “states” in the left hand layers panel and choose “Properties” and go to the Join tab. From here press the green add icon at the bottom. To join datasets we need to use a property which is unique and present in both datasets, in this case it’s the “fips” code column in the Shapefile and the “fips” code column in the CSV. When we press okay QGIS will match the records using the fips code and then add the additional columns in our CSV (rank & rate) to the attribute table of the Shapefile.

image

Pro Tip: For this example we’re joining the records using the fips code, but you could just as easily join records using any column that has unique values, such as state name or zip code. Trying to join on columns where the values aren’t all unique will cause data errors.

Once complete we can right click on counties in the left hand layer menu and select “View Attribute Table”, you will now see that a new column has been added called “data_pvrty” that contains the poverty rate for each county.

Close the attribute table and right click again on counties and select “Save As” to save the newly joined dataset.​ We now have a Shapefile that can be used in any mapping application to visualize the unemployment rate of counties.

CREATING OUR HEAT MAP IN MANGOMAP

Now that you have your Shapefile let’s upload it to MangoMap and take a look. If you don’t yet have an account your can sign up for free here.

Once you have logged into your account just complete the following steps:

  1. Press “Create Map”
  2. Press “Add Layer - > Upload Data” Select the four files of the Shapefile we made.
  3. Once the upload finishes choose “Graduated Color”.
  4. In the “To show” drop down choose “data_pvrty”
  5. Change the Range column in the table to 5, 10, 15, 20 and 25
  6. Press Save

image

You will now be able to see your heat map showing U.S counties by unemployment. Please take some time to experiment with different values to see what happens to the map.

image

Learn More About MangoMap

If you would like to learn more about MangoMap your can watch the getting started video below.

Comments

How to Turn a List of Locations into an Online Heat Map

In this tutorial I’m going to show you how you can take a list of locations and turn them into a heat map e.g. colleges per county.

image

For this example were going to be using two datasets the first is U.S Colleges (point data) which contains the locations of all U.S schools, the second dataset is U.S counties (Polygon data). The objective is to create a heat map that lets us see which counties have the highest number of colleges.

You can download the sample data here. The data is in Shapefile format which is the de facto standard for sharing map data, despite it’s name it’s in fact a collection of a minimum of four files (.shp, .shx, .dbf, .prj). 

If your location data is in a spreadsheet you can follow this tutorial that explains how to convert a spreadsheet into a Shapefile.

You can easily find Shapefiles for different administrative boundaries for free online. For example the administrative boundaries for the U.S can be downloaded from the Census Bureau.

We will be preparing the data using a popular opensource GIS (geographic information system) program called QGIS. For this tutorial we’re assuming you have QGIS already installed, if you don’t you can download the installer here. We’re using QGIS 2.0, but it should also work on earlier versions. 

Importing the Data Into QGIS

For the purpose of this tutorial you don’t need to be familiar with QGIS but if you would like to learn more then here is a great place to get started.

First unzip the sample data and save it in a local directory. You will see the two Shapefiles (made up of four files each). Now we need to run QGIS and complete the following steps:

  1. From the menu bar press “Layer -> Add Vector Layer
  2. Press the browse button and choose the “counties.shp” file and press open.
  3. Repeat steps 1 & 3 to open the “colleges.shp” file.

Now we can see the two datasets displayed on the map as layers. A Shapefile is made up of two main parts, the first is the geometry which you can now see on the map, the second is the attribute data which contains data about each feature.

To see the attribute data for one of the features on the map follow these steps:

  1. Activate the identify tool
  2. Click on a feature on the map

Counting the Points (colleges) Inside Each Polygon (Counties)

Obviously counting all of the points manually would be very hard work, luckily QGIS can do the hard work for us. We’re now going to use QGIS to count how many colleges are in each county and add that number as an extra column called “PNTCNT” in the attribute data of each country.

Follow these steps:

  1. In the main menu press “Vector -> Analysis Tools -> Points in polygon”.
  2. Press browse to choose where the new county Shapefile that contains the school count will be stored and call it “Colleges Per County” and press “OK”.
  3. When prompted “Would you like to add the new layer to the TOC?" press yes.

The new Shapefile will be opened on the map. In the left hand to bar your can now right click on the “USCountiesColleges” and select “Open Attribute Table”, here in the “PNTCNT” column we can see the number of schools in each county.

Data Clean Up

You will notice that the “schools” column shows a floating point number, when in reality it should be whole numbers. To fix this we need to complete the steps below:

  1. Right click “USCountiesColleges” and choose “Open attribute table”.
  2. Press the edit button from the top menu bar.
  3. Now press the “Open field calculator” button from the top menu (Or press CTRL+i).
  4. Change “Output field name” to schools.
  5. Make sure “Output field type” is “Integer (whole number)”.
  6. In the function list choose “Fields & Values” and double click on “PNTCNT”.
  7. Press OK.

image

You will now see the schools column correctly formatted in the table. We can now delete the PNTCNT column by pressing the “Delete columns” button in the top menu bar or pressing CTRL+l and selecting PNTCNT.

We should finish up by pressing the save button in the top bar.

Creating Our Heat Map In MangoMap

Now that you have your Shapefile let’s upload it to MangoMap and take a look. If you don’t yet have an account your can sign up for free here.

Once you have logged into your account just complete the following steps:

  1. Press “Create Map”
  2. Press “Add Layer - > Upload Data” Select the four files of the Shapefile we made.
  3. Once the upload finishes choose “Graduated Color”.
  4. In the “To show” drop down choose “schools”
  5. Change the Range column in the table to 0, 1, 5, 10, 20
  6. Press Save

image

You will now be able to see your heat map. Please take some time to experiment with different values to see what happens to the map.

image

Learn More About MangoMap

If you would like to learn more about MangoMap your can watch the getting started video below.

Comments

How To Make a Web Map from a List of Addresses in a Spreadsheet

In this tutorial I’m going to show you how you can take a spreadsheet containing addresses and display them as points on a map.

image

In order to display data on a map we first need the geographic coordinates of each location. The process of turning an address into a coordinate is known as geocoding, we will be doing this geocoding using a popular opensource GIS (geographic information system) program called QGIS.

For this tutorial we’re assuming you have QGIS already installed, if you don’t you can download the installer here. We’re using QGIS 2.0, but it should also work on earlier versions. 

If you don’t have any data but would like to follow along, you can use this sample data.

Installing QGIS and the MMQGIS Plugin

For the purpose of this tutorial you don’t need to be familiar with QGIS but if you would like to learn more then here is a great place to get started.

The first thing we need to do is install the MMQGIS plugin that ads geocoding capabilities to QGIS.

1. Choose "Plugins" from the menu bar and choose "Manage and install plugins…"

image

2. Choose “Get More” in the left panel, find and select MMQGIS by using search and press "Install Plugin"

image

Convert Spreadsheet into Comma Separated Values (CSV)

Now we need to prepare our data before we can begin the geocoding process. The geocoder needs the data provided as a CSV (comma separated values) which contains columns called “address”, “city”, “state” and “country”. e.g.

  • Address: 29 Main Street
  • City: Springfield
  • State (or state equivalent outside U.S): California
  • Country: New Jersey

Most geocoders are quite smart and for example will be able to workout that NJ in the state column is New Jersey, so don’t worry if your data is in a slightly different format to that shown above. 

If all of the address is contained in a single column then you will need to use Excel formulas to separate the address into separate fields as shown above.

You can convert your spreadsheet to a CSV file in Excel or any other spreadsheet program by opening the spreadsheet and pressing “Save As” then choosing “CSV (Comma delimited)" from the "Save as type" option.

Geocoding our Data

Now that we have our data in the correct format it’s time to geocode it in QGIS. In the menu bar goto: MMQGIS -> Geocode -> Geocode CSV with Google / OpenStreetMap.

Here you need to browse to select our CSV file and we will need to tell it which columns are the address, city, state and country.

Important! Make sure that both output paths are valid and you have permission to write to them. On Windows the default output path for the notfound.csv is often in a location that QGIS can’t write to and you will receive an error if you use that value.

image

We also have a choice of web services, we can choose from Google or OpenStreetMap. Google tends to provide the best results but only allows you to geocode 2500 records per day, whilst OpenStreetMap has no limit.

Pro Tip: If your CSV has more than 2500 records and you wish to use Google you can break the spreadsheet into separate files each with 2500 records and process one each day. Once complete join the output files back together using MMQGIS’s merge layer function.

The results will be stored as a Shapefile which despite it’s name is a collection of a minimum of four files (.shp, .shx, .dbf, .prj). The Shapefile is the de facto standard for storing GIS data and nearly all mapping applications support it.

A second file will be stored that contains a CSV of any records that couldn’t be successfully geocoded. These records usually have an incomplete address, spelling mistakes or are in remote areas not covered by the geocoder.

To begin the geocoding press Okay and go put the kettle on, geocoding can take quite a long time especially for larger datasets.

Once the geocoding is complete the matched results will be displayed on the screen as a series of points which won’t make any sense as there’s no base map with which to reference them.

Exporting Your Geocoded Data

Now that you have your Shapefile let’s upload it to MangoMap and take a look. If you don’t yet have an account your can sign up for free here.

Once you’ve logged into your account just complete the following steps:

1. Press "Create Map".

2: Press "Add Layer - > Upload Data" Select the four files of the Shapefile we made.

3: View Map.

It’s that simple!

image

MangoMap

Now you can go on to customize and share your map. If you’re new to MangoMap you can sign-up for a free account here and watch this short getting started video that will show you the basics.

Happy Mapping!

Comments

The Philippine Government use of MangoMap for Disaster Mitigation

The Philippine governments Department of Social Welfare and Development has been using MangoMap to build web maps that assist with their relief efforts.

The Disaster Mitigation and Response Situation Map you see below has been created in order disseminate up to date information regarding the location of important sites and services such as relief centres and aid drop-zones.

imageMap Link

The map is currently being viewed more than 6,000 times per day and the data is being updated frequently.

We’re glad we’ve been able to play a small part in such an important effort and our thoughts are with the victims and the people of the Philippines.

Comments