Apologies! Your web browser lacks required capabilities. Please consider upgrading it or switching to a more modern web browser.
Initializing. Please wait…
<h2>Online Mapping Game</h2>
Hello and welcome to the online mapping game, where the goal is to help you discover how to put a map online! Before we start, let's first pick your character for the game. This is based on which map-based tasked that you'd like to complete and what type of information you're bringing to the game. As you progress through the map-based tasks, you also have the option of upgrading their character to complete more complex tasks. Let's introduce the characters!
[img[images/boy.png]]
This is Tommy Thompson, an individual that doesn't know much about maps. Tommy is looking to use a map, but he doesn't necessarily have any map with him or any form of data that will help create a map. Tommy is essentially starting from scratch. With this character, users would [[like to use a map, but I have nothing|NoMapsData]]
[img[images/Mercator.png]]
This is Gerard Mercator is a Flemish cartographer in the 16th century whose most important innovation was a map. Mercator is well known for the Mercator projection, on which parallels and meridians are rendered as straight lines spaced so as to produce at any point an accurate ratio of latitude to longitude. With this character, users [[have a digital map that I'd like to put online|OnlineMap]]
[img[images/Tomlinson.png]]
This is Roger Tomlinson, an english-born Canadian geographer who in 1963 began developing in Ottawa, Canada what would eventually become the first true Geographic Information System (GIS) in order to assist the Canadian government with monitoring and managing the country’s natural resources. Tomlinson is known as the "Father of GIS". With this character, users [[have data in a spreadsheet that they'd like to map|DataMap]]<<if $addClean is true and $addTable is true and $addGeo is true>>
Congratulations!! you've met all of the criteria to move ahead. You're data is all cleaned-up, is formatted in a spreadsheet and has a geographic location. Now, how is your geographic location represented?
1. [[Latitude/Longitude|Coordinates]] coordinate show an exact location and are typically easiest to work with.
2. [[City, State/Province, Country, Postal Code, Street Address|GeographicElements]] indicate the approximate position of a point.
<<elseif $addClean is true and $addTable is false and $addGeo is false>> Sorry, your data needs to be formatted in a spreadsheet and needs geographic elements. For help with:
1. Getting your data in a <a href="http://programminghistorian.org/lessons/understanding-regular-expressions" target="_blank">spreadhseet format using regular expressions</a>
2. A geographic location can be indicated in a multitude of ways; city, province/state or country, latitude or longitude or a street address.
[[Please Try Again|DataMap]]
<<elseif $addClean is true and $addTable is true and $addGeo is false>> Sorry, your data needs geographic elements. A geographic location can be indicated in a multitude of ways; city, province/state or country, latitude or longitude or a street address.
[[Please Try Again|DataMap]]
<<elseif $addClean is false and $addTable is true and $addGeo is false>> Sorry, your data appears to be dirty and doesn't include geographic elements. For help with:
1. Getting your <a href="http://programminghistorian.org/lessons/cleaning-data-with-openrefine" target="_blank">data cleaned-up using OpenRefine</a>
2. A geographic location can be indicated in a multitude of ways; city, province/state or country, latitude or longitude or a street address.
[[Please Try Again|DataMap]]
<<elseif $addClean is false and $addTable is true and $addGeo is true>> Sorry, your data appears to be dirty. Look at getting your <a href="http://programminghistorian.org/lessons/cleaning-data-with-openrefine" target="_blank">data cleaned-up using OpenRefine</a>
[[Please Try Again|DataMap]]
<<elseif $addClean is true and $addTable is false and $addGeo is true>> Sorry, your data needs to be formatted in a spreadsheet. Please see getting your data in a <a href="http://programminghistorian.org/lessons/understanding-regular-expressions" target="_blank">spreadhseet format using regular expressions</a>
[[Please Try Again|DataMap]]
<<elseif $addClean is false and $addTable is false and $addGeo is true>> Sorry, your data needs to be formatted in a spreadsheet and appears to be dirty. For help with:
1. Getting your data in a <a href="http://programminghistorian.org/lessons/understanding-regular-expressions" target="_blank">spreadhseet format using regular expressions</a>
2. Getting your <a href="http://programminghistorian.org/lessons/cleaning-data-with-openrefine" target="_blank">data cleaned-up using OpenRefine</a>
[[Please Try Again|DataMap]]
<<endif>>\
Thank you for choosing Tommy. Tommy is keen and eager to get started with mapping, but he doesn't have a map or any information to start making a map. Please select below what best represents your situation:
[[I'd like to find an existing Map|FindMaps]]
[[I'd like to find data to create a map|FindData]][img[images/Mercator.png]]
Thank you for choosing the Gerard Mercator character. Gerard Mercator is a Flemish cartographer in the 16th century whose most important innovation was a map. The tasks included in this stage assumes that you either have a map or have found a map. The following are options for your next map-based tasks.
[[Georeference the map (overlay over real world locations)|GeoreferenceMaps]]
[[Put the map(s) online|UploadMaps]][img[images/Tomlinson.png]]
Thank you for choosing the Roger Tomlinson character. Roger Tomlinson was an english-born Canadian geographer who is considered by most in the field to be the "father of GIS". This is the most advanced character of the game as we'll be mapping some of your data. To start mapping data, we'll need some form of geographic location in your data. A geographic location can be indicated in a multitude of ways; city, province/state or country, latitude or longitude or a street address. As there are multitude of online mapping applications that deal with these data, this tutorial will give you a step by step instructions on how to work with a specific mapping tool, while illustrating its strengths and weakenesses. Before we start anything, make sure that you've completed the following tasks before moving forward. If you don't select all 3 options, you'll be asked to complete them.
<<set $backpack to []>>
1. <<checkbox "$addClean" false true false>>Is your cleaned-up? Have you removed duplicates, empty rows or columns?
2. <<checkbox "$addTable" false true false>>Is your data in a spreadsheet format (xls, csv)?
3. <<checkbox "$addGeo" false true false>>Does your data include a geographic location?
<<button [[geographic location?]]>>
<<if $addClean>><<set $backpack.push("Clean")>><</if>>
<<if $addTable>><<set $backpack.push("Table")>><</if>>
<<if $addGeo>><<set $backpack.push("Geo")>><</if>>
<</button>>There are various ways to find maps. Begin by searching the following websites for digital maps.
1. <a href="http://www.bac-lac.gc.ca/eng/discover/maps-charts-plans/pages/maps-charts-architectural-plans.aspx" target="_blank">Library and Archives Canada</a>
2. <a href="http://www.oldmapsonline.org/" target="_blank">Old Maps Online</a>
3. <a href="http://www.davidrumsey.com/" target="_blank">David Rumsey Historical Map Collection</a>
4. <a href="http://www.lib.utexas.edu/maps/historical/index.html" target="_blank">Perry-Castañeda Library</a>
5. <a href="http://digitalcollections.nypl.org/divisions/lionel-pincus-and-princess-firyal-map-division" target="_blank">New york Public Library</a>
6. Paper Map that you intend on scanning. A scan be done with a large format scanner or with a digital camera. Ensure that you check <a href="http://www.acmla-acacc.ca/dev/carto_copy.php" target="_blank">the copyright on the map (draft guidelines to follow).</a>
Once you've searched through these database, download the imagery or map that you'd like and voila. [[Are you more than happy with ending here?|TommyEnd]]
There are lots of places to find data to create maps from. Try the following:
1. <a href="http://open.canada.ca/en/maps/open-data-canada" target="_blank">Open data portals in Canada</a>
2. <a href="https://usopendata.org/" target="_blank">Open data portals in USA</a>
3. Find data from various cultural institutions such as librairies, archives and/or museums. Once you've obtained this information, you'll most likely need to clean-up the data. Follow <a href="http://programminghistorian.org/" target="_blank">numerous tutorials from the programming Historian</a>to help you with that.
Once you've cleaned-up your data and to map it, you can upgrade to the [[Roger Tomlinson character|DataMap]].
[img[images/Tomlinson.png]]
There are many ways that a map can be georeferenced. Select the method below that best describes what you're trying to do.
1. [[Using Google Earth to georeference|GeoreferenceGE]], where I'll be able to share the information as a .kml file.
2. [[Using MapWarper to georerence|GeoreferenceMW]], where I'll upload my map online and will be able to link to it.
3. [[Using a GIS software to georeference|GeoreferenceGIS]], where I'll be able to use the image on desktop and online mapping tools
You've decided to put up a map online, which is fantastic!
There are a few ways in which you can put a map online:
[[Static Map]], where you upload a map online only.
[[Interactive Map]], where the uploaded map is more interactive, allowing the user to zoom and pan.<h3>Georeferencing with Google Earth</h3>
[img[images/GE3.png]]
Using the imagery of Google Earth as a backdrop, you can overlay photos, aerial views or map images to complement the existing earth view. In this tutorial, you'll be adding a scanned historical maps to Google Earth. Within Google Earth, you can upload a digital copy of a historical map. This could be a map that has been scanned, or an image obtained that is
already in a digital format.
We'll use this method if you'd like to have a georeferenced image created in a desktop software or if you're image is still in copyright and you don't want to make the image public.
Google Earth is a desktop software available for both Windows and Apple. You can <a href="http://earth.google.com/" target="_blank">Download Google Earth here.</a>
1. Once you have Google Earth downloaded and installed, open the software and turn off all layers from the table of the contents on the left.
2. Using the zoom tools in Google Earth, zoom into the area of your scanned image. No need to be to precise though.
2. Create a new folder for this project, right-click “My Places” in the table of contents on the left hand side and select Add > Folder. Provide a folder, select Add > Image Overlay. [img[images/GE2.png]]
4. In the dialogue box, enter a descriptive name in the Name field. In the Link field, enter the URL address of an image to overlay or use the Browse button to locate the image locally (i.e. an image saved on your hard drive).Change the transparency of the image by sliding the tab to make the Google imagery visible beneath the overlay.
5. Add a description if necessary.
6. Move the new Image Overlay window aside to see the Google Earth viewer. Do not close the Image Overlay window.
7. Use the green handles to stretch, reposition and rotate the overlay until it matches the imagery beneath. This may take a bit of tweaking to match up the detail.
8. When the adjustments are complete, click OK. The image can be seen in the Google Earth viewer and is listed in the new folder under My Places.
9. The image transparency can be modified on-the-fly by selecting the image from the list then dragging the slider below the Places listing.
10. To access image properties, right-click the image layer under Places and select Properties. Adjustments can be made to the image as performed in the earlier step.
<h4> Sharing Your Work</h4>
1. To create a KMZ file, right-click on the folder (“Overlay Tutorial” in the above example) and select Save Place as…
2. Give the file an appropriate name and click Save. This file can be sent via email as an attachment, added to a website as a download link or saved locally for future reference.
3. To view a KMZ /KML file, run Google Earth and select File > Open. Navigate to the KMZ/KML file and open. The layers will appear under Places > Temporary Places.
[[Are you more than happy with ending here?|MercatorEnd]]
<h3>Georeferencing with Map Warper</h3>
Mapwarper is an open source map geo-rectification, warping and georeferencing application. It enables a user to upload an image, a scanned map or aerial photo, and by placing control points on a reference map and the image, to warp it, to stretch it to fit.
Before starting the georeferencing, ensure that you've checked the <a href="http://www.acmla-acacc.ca/dev/carto_copy.php" target="_blank">copyright (draft guidelines) on the map</a>. If your map is still in copyright, please follow [[GeoreferenceGIS]] or [[GeoreferenceGE]] as the final georeferenced map doesn't doesn't need to be made available to the general public.
If you're map is out of copyright, please continue with the following steps of uploading the image.
1. Begin by going to the <a href="http://mapwarper.net/" target="_blank">MapWarper</a>website to create an account, then login.</p>
2. Find an image of a map to georectify. See the [[various links|FindMaps]] where you should be able to find map images. The map should be the highest resolution possible. For the purposes of this tutorial, I am going to use a Fire Insurance Plan that was downloaded from <a href="http://collectionscanada.gc.ca/pam_archives/index.php?fuseaction=genitem.displayEcopies&lang=eng&rec_nbr=3816143&rec_nbr_list=3827534,3824226,3827571,3816143,3827509,3816060,2132980,2133082,3816030,3827541&title=Insurance+plan+of+the+city+of+Ottawa%2C+Canada%2C+and+adjoining+suburbs+and+lumber+districts%2C+January+1888%2C+revised+January+1901.+&ecopy=e010689183-v8" target="_blank">Library and Archives Canada.</a>
[img[images/lac.png]]
3. From MapWarper's website, click “upload map”. You will need to add some information in the metadata fields "title", "tags" and "description". The remainder of the tags are optional. After uploading the map you will see an image of it. [img[images/MW2.png]]
5. Next click the "rectify" tab. MapWarper will provide you with an interface where you can pan and zoom an image of your map next to a map of the world. You should navigate to the area on the world map depicted in your map image, in this case, Ottawa, Ontario, Canada.
6. Add control points to the map. You do this by zooming in on both maps to the same location and adding a point by using the "Add Control Point" tool (looks like pencil). Click on a point on the map image, then click on the same point in the world map, then click on “Add Control Point". Do this for a minimum of 3 points, but the more points that are the better. At least a dozen is better, and the points should be spread around the map. As you add control points they will be listed below the maps.
[img[images/MW3.png]]
7. When you think you have enough control points, click “Warp Image.” You can always go back and add more control points later. You will be taken to a preview of your georectified map.
[img[images/MW4.png]]
8. If you are not pleased with the results, try the following:
a. Ensure that your points are accurate. Use the zoom tool to be as precise as possible.
b. Use more points.
c. Ensure that your points are dispersed on the map.
9. The MapWarper export tab offers many ways to use your newly georectified map. Users can save an image file, google earth file, Wms Url or Tiles (Google/OSM scheme).
[img[images/MW5.png]]
[[Would you like view this in CartoDB?|CartoDB]]
[[Are you more than happy with ending here?|MercatorEnd]]
<h3>Georeferencing with QGIS</h3>
QGIS is an open source Geographic Information System (GIS) which allows users to create, manipulate and display geographic data. Click here to <a href="http://www.qgis.org/en/site/" target="_blank">download the latest QGIS on either Windows or Apple</a>
We'll use this method if you'd like to have a georeferenced image created in a desktop software or if you're image is still in copyright and you don't want to make the image public.
1.Georeferencing in QGIS is done with the "Georeferencer GDAL" plugin. This is one of many plug-ins that is already part of your QGIS installation. To enable the plugin, in the QGIS menu, go to Plugins > Manage and Install Plugins. Find and enable the "Georeferencer GDAL plugin".
[img[images/QGIS1.png]]
2. We'll also need to ensure that the OpenLayers Plug-in is installed as well. We'll be using this plug-in to add our basemap, which we'll be using to georeference our image.
[img[images/QGIS1.png]]
3. We'll first add the basemap. In QGIS menu, click on Web > OpenLayers plugin > OpenStreetMap > OpenStreetMap. This will add a basemap of the world. Use the zoom and pan tools to zoom into your area in the world where we'll try to georeference an image. We'll also change the coordinate system for this map. At the bottom right of QGIS, click on EPSG:3857 and select EPSG:4326.
[img[images/QGIS2a.png]]
4. In the QGIS menu, go to Raster > Georefencer to open the tool.
[img[images/QGIS2.png]]
3. The tool is divided into 2 sections. The top section where the scanned image will be displayed and the bottom section where a table showing your ground control points (GCP) will appear.
4. Now we will open our image. In this case, we'll be using our fire insurance plan of Ottawa, Ontario, Canada. In the Georeferencer tool go to File > Open Raster. Browse to the downloaded image of the scanned map and click Open.
[img[images/QGIS3.png]]
5. Next, you'll be asked to choose the raster’s coordinate reference system (CRS). This is to specify the projection and datum of your ground control points. This can be a little tricky for historical maps where the CRS may be unknown. You may have to make a best bet for the datum. Something to look out for are the graticules on the map ( Another option when it's for a small space is to give the current Datum used by most georeferencing tools - WGS84 (EPSG 4326) (this is what google uses).
[img[images/QGIS4.png]]
6. Let's now add some GCPs. Click on Edit > Add Point to add a control point. Your cursor will change to a cross, which means that you're now ready to add a point. Click on fire insurance plan to set the initial point. The "Enter Map Coordinates" dialog opens. Click on the "From map canvas" to find the same location from the OpenStreetMap basemap.
[img[images/QGIS5.png]]
7. Repeat these steps until you have a minimum of 4 points. Keep in mind that more GCPs dispersed on the map leads to increased accuracy. You will notice the GCP table now has a row with details of your GCPs.
8. When you're done adding GCPs, select Settings > Transformation settings. Fill in the information as indicated below. After you've done your initial transformation, you can play around with the various <a href="http://docs.qgis.org/1.8/en/docs/user_manual/plugins/plugins_georeferencer.html" target="_blank">Transformation Types and resampling methods to get a better understanding</a>
Once you've filled in the information, click on Ok.
[img[images/QGIS6.png]]
9. You're GCP table below should update with residuals. Residuals indicate the level of error included in your georeferencing. Adjust the points accordingly to get residuals that are most accurate.
10. Once you're ready to proceed, click on File > Start Georeferencing. This will georeference your image and once complete, add the fire insurance plan to basemap in QGIS. This also saves your georeferenced image.
[img[images/QGIS7.png]]
[[Are you more than happy with ending here?|MercatorEnd]]A static map is a map that has been put online. Before doing this, consult the <a href="http://www.acmla-acacc.ca/dev/carto_copy.php" target="_blank"> draft copyright guidelines</a> to ensure that you're following copyright laws when reproducing cartographic materials.
Putting up a static map online is like putting up any particular image where you need to upload your map to a server. The following are a few image loading servers that may be used.
1.<a href="https://www.flickr.com/" target="_blank">Flickr</a>
2. <a href="https://photos.google.com/" target="_blank">Google Photos (formerly Picassa)</a>
3. <a href="https://www.google.ca/drive/" target="_blank">Google Drive</a>
4. <a href="http://s5.photobucket.com/" target="_blank">Photo Bucket</a>
5. <a href="https://www.dropbox.com/" target="_blank">Dropbox</a>
Please select one that meets your needs and upload your map to the server. Once this is done, you should be given a link that you'll be able to use to access your map.
If you'd also like to [[Georeference the map (overlay over real world locations)|GeoreferenceMaps]]
[[Are you more than happy with ending here?|MercatorEnd]]
In terms of interactive map, we're essentially allowing users to zoom in, zoom out and pan around the image that we just scanned or used. One of the ultimate tools for doing this is with zoomify.
1. <a href="https://www.brocku.ca/maplibrary/Instruction/ZoomifyURL/ZoomifyURL.pdf" target="_blank">Zoomify Tutorial from Brock University</a>
Keep in mind that zoomify has evolved since this was last writen by the fine folks at Brock University. Zoomify now charges a nominal fee for access to their new <a href="http://www.zoomify.com/express.htm" target="_blank">zoomify express tool</a>
2. Alternatively, you could always use the <a href="https://github.com/turban/Leaflet.Zoomify" target="_blank">leaflet plug-in</a> that is free that essentially does the same thing.
Please select one method that meets your needs and upload your map to the server. Once this is done, you should be given a link that you'll be able to use to access your interactive map.
[[Are you more than happy with ending here?|MercatorEnd]]Having Latitude and Longitude coordinates are ideal for mapping your own data. Ensure that you're coordinates are in WGS84, which is a coordinate system that is used by Google Maps, Bing Maps, OpenStreetMap and most online interactive mapping websites. An example of coordinates in this space look like this for the Ottawa area: -75.75864, 45.76749. The number of digits after the period defines the precision of the coordinates and can be more or less than the example that we've given. -75.75865 is west of the meridian (0 degrees) where as 45.76749 is north of the equator.
If you're data looks good, proceed to map your point data using [[CartoDB]]
If the numbers that you have are different, you're probably in a different coordinate system. Hopefully your metadata will indicate which coordinate system your data is in. Once you've identified that, you can try to change the projection of the data to be in WGS84.
If you don't have latitude and longitude coordinates in your spreadsheet, you'll have to extract them from other [[geographic indicators|GeographicElements]]
You've got City, State/Province, Country, Postal Code or Street Address as your input data. To map this type of geographic data, we'll have to geocode your data and extract the latitude and longitude information and add it to your data. while it's true that some applications will directly and automatically geocode your city, country or postal code data, it is rare to find a free tool that will geocode limitless amount of street address information. Most will only do a limited number of street addresses.
You can either use:
1. [[Online Tools|OnlineGeocoding]]. Online tools should be used to geocode up to a few thousand points only.
2. [[Desktop Tools|DesktopGeocoding]]. Desktop tools can be used to geocode more than a few thousand points.
CartoDB is an online mapping tool that allows users to easily map and analyze data for free. There is both a free and paid version of this product, the paid versions offering addtional privacy features and more data storage. For our purposes, the free version will sufice.
<<if visited("GeoreferenceMW")>>
1. Go to <a href="https://cartodb.com/" target="_blank">CartoDB</a> and login in/create a free account.
[img[images/Cartodb1.png]]
2. Click on "Maps" and then on the "New Map" Button to create a new map. In the following dialog, click on "Create empty map". Skip the following step.
3. At the bottom left of the screen, click on "Change basemap" and click on the "+" next to yours. This will allow you to add your newly georeferenced image from MapWarper.
[img[images/cartodb9.png]]
4. Return to MapWaper and copy and paste the link next to "Tiles (Google/OSM scheme):". This text looks like this. http://mapwarper.net/maps/tile/13395/{z}/{x}/{y}.png
Copy and paste this in CartoDB and click Ok. The georeferenced image will now be CartoDB.
5. To export or share your map, click on Visualize button at the top right in CartoDB. You'll be asked to confirm to create the map. Here, users have the option of adding various map elements such as title, annotations or an item. You can also preview the map and see how it will look at a mobile version vs a desktop computer as well as export a static image of the map. Lastly and most importantly, users can share the map by providing a link or embedding it in their own websites. Users also have the option of developing their own cartodb.js application. Click on Publish at the top right and select the link to be able to share it with our friends.
<<else>>
The data that we'll use for this exercise can be <a href="https://github.com/joelrivard/dh-final/blob/gh-pages/images/federal_heritage_designation_city.csv" target="_blank">downloaded from here</a>
1. Go to <a href="https://cartodb.com/" target="_blank">CartoDB</a> and login in/create a free account.
[img[images/Cartodb1.png]]
2. Once logged in, click on "Dataset" to upload your data that includes latitude and longitude data.
3. Upload your spreadsheet format data by clicking "New Dataset" and navigate to add the data you previously downloaded. Click on Connect Dataset to add the data.
[img[images/Cartodb2.png]]
4. Once the data has been imported, you can then take the next step and visualize the data. First, we need to confirm with CartoDB which field we'll be using for our coordinates. Click on the "latitude_wgs84" field and select "Georeference".
[img[images/Cartodb4.png]]
5. Select the specific fields to represent the latitude and the longitude. You'll notice that you can also use the following geographies: City Names, Postal Codes and Street Addresses. Keep in mind that there are limits to these. CartoDB limits geocoding of 100 addresses for the free account.
[img[images/Cartodb5.png]]
6. Before visualizing our maps, CartoDB will suggest ways in which we can display our data. It does this by examining the other bits of data that we have in our table. In this case, CartoDB has discovered 5 interesting maps! At the bottom of the table, click on "Show" button to see these maps.
[img[images/Cartodb6.png]]
7. Scroll through the various types of maps to see what CartoDB thinks would be nice to map. This is where knowing your data is important. In this case, the 3 choropleth maps that are proposed are worthless because they use the ID, latitude and longitude fields. The remaining 2 category maps (type, prov) make a bit more sense. Let's click on the map that says "Category on type".
[img[images/Cartodb7.png]]
8. This will bring you back to your "Data View". Now, select the "Map View" tab. This will show you the map with 3 specific types of historic items (historic events, historic persons and historic sites).
[img[images/Cartodb8.png]]
9. Your data is now displayed on the map. You can change the information pop window, the symbols, colours, etc. by examining the tools on the right. CartoDB has a wonderful guide that helps users with these - http://cartodb.github.io/training/introductory/kqed.html
10. To export or share your map, click on Visualize button at the top right in CartoDB. You'll be asked to confirm to create the map. Here, users have the option of adding various map elements such as title, annotations or an item. You can also preview the map and see how it will look at a mobile version vs a desktop computer as well as export a static image of the map. Lastly and most importantly, users can share the map by providing a link or embedding it in their own websites. Users also have the option of developing their own cartodb.js application. Click on Publish at the top right and select the link to be able to share it with our friends. The map below shows the map that has been embeded in this tutorial.
<iframe width="100%" height="520" frameborder="0" src="https://geojoel.cartodb.com/viz/cef750b6-f76c-11e5-9cdb-0ea31932ec1d/embed_map" allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen></iframe>
<<endif>>
[[Are you more than happy with ending here?|TomlinsonEnd]]<h3>Geocoding with GPS Visualizer</h3>
GPS Visualizer is an online utility that allows users to geocode tabular geographic data data. Geocoding is the process of converting street addresses or other locations to latitude and longitude. GPS Visualizer offers several options for geocoding your information. It is free and easy to use, yet powerful and extremely customizable.
To geocode, you will be required to use one of the following APIs.
1. <a href="https://msdn.microsoft.com/en-us/library/ff701713.aspx" target="_blank">Bing Maps API</a>
2. <a href="https://developers.google.com/maps/" target="_blank">Visit Google Maps API</a>
3. <a href="http://open.mapquestapi.com/geocoding/" target="_blank">MapQuest Open API</a>
[img[images/GPSVisualizer4.png]]
GPS Visualizer requires that your data for the address be in separate fields (address, city, province or state, country, postcode). Also, please ensure that you have the following field names when running any form of geocoding in GPS Visualizer as seem below.
[img[images/GPSVisualizer2.png]]
Which means that you're data in the spreadsheet should look like this.
[img[images/GPSVisualizer3.png]]
<h4>Geocoding City, Province/State, Country, Postal Code</h4>
To Geocode using city, province/state, country, postal code, users can use the simple geocoding method in GPS Visualizer. With this method, users don't need to use an API from Google, Bing or Mapquest.
1. Go to <a href="http://www.gpsvisualizer.com/convert_input" target="_blank">GPS Visualizer</a>
2. Click on "choose File" to select the .csv file to geocode.
3. Select the proper plain text delimiter (In this case, we'll select comma.
4. Click on Convert. This may take several minutes depending on the number of records that you're trying to geocode.
[img[images/GPSVisualizer6.png]]
5. The results should look a little something like this.
[img[images/GPSVisualizer5.png]]
Users that need to geocode data at the address level (1125 colonel by drive) can do so with this mehod. Users can geocode with the use of either of the 3 APIs (as mentioned above) and you’ll be copying and pasting the data. This typically works for when users have up to 2,000 points.
<h4>Geocoding Street Addresses</h4>
1. Go to <a href="http://www.gpsvisualizer.com/geocoding.html" target="_blank">GPS Visualizer</a> and click on Geocode Multiple Addresses. The following window will appear.
[img[images/GPSVisualizer1.png]]
2. Copy and paste content from the spreadsheet into the Input section of GPS Visualizer.
3. Select the Source of your geocoding; Mapquest Open, Bing Maps, Google. In either case, you'll have to obtain the api eky for whichever service you choose to use.
[img[images/GPSVisualizer5.png]]
4. Click on "Start Geocoding" to see the results appear in the "Results as text" box. This could take a while, depending on the number of records to geocode. Once it's complete, copy and paste the results to your spreadsheet. This should now include latitude and longitude coordinates, in the WGS84 projection.
Once you've obtained the latitude and longitude, go back to [[CartoDB]] to visualize your data.
<h3>Geocoding with QGIS</h3>
QGIS is an open source Geographic Information System (GIS) which allows users to create, manipulate and display geographic data. Click here to <a href="http://www.qgis.org/en/site/" target="_blank">download the latest QGIS on either Windows or Apple</a> We'll be using QGIS to geocode when you have over a few thousand points to geocode. To geocode, you will be required to use one of the following APIs:
1. <a href="https://developers.google.com/maps/" target="_blank">Visit Google Maps API</a>
2. <a href="http://open.mapquestapi.com/geocoding/" target="_blank">MapQuest Open API</a>
1. The geocoding in QGIS will be done by using the MMQGIS plugin. In QGIS, click on Plugins > Manage and Install Plug-ins. Scroll down and click on mmqgis and click on install.
[img[images/geocoding1.png]]
2. Once it's installed, in the menu, click on MMQGIS > Geocode > Geocode CSV with Google/OpenStreetMap.
[img[images/geocoding2.png]]
3. The geographic information in your csv file needs to be formatted in the following way:
a. Address: 1225 Colonel By drive
b. City: Ottawa
c. Province: Ontario
d. Country: Canada
You must also ensure that there are no spelling mistakes, special characters (ie.$, %)
[img[images/geocoding4.png]]
4. In the dialog box, match up your corresponding fields. The field name in your csv file can be whatever you want, just as long as it contains the specific geographic information for "Address Field", "City Field", "State Field" and "Country Field". Select Google Maps or OpenStreetMap as the WebService. Google Maps can do abuot 2,500 records per day while OpenStreetMap has not limits.
[img[images/geocoding3.png]]
5. Once the geocoding is done, it will create a new shapefile, as well as a csv file with addresses that weren't found. Open the csv file and fix up the geographic fields to ensure that these can be properly be geocoded. Sometimes the spelling of the street or city could be different (or different language). Once you're ready, re-run the geocoding.
6. When you have a finished shapefile, you'll notice that the attribute table does not contain the longitude and latitude coordinates. We'll have to calculate these using QGIS's field calculator.
7. Open the attribute table, and select the icon to right in the attribute table.
[img[images/geocoding5.png]]
8. Fill in the following information to create a new field and calculate the coordinates. The following two screenshots illustrate the calculation of the x and y coordinates.
[img[images/geocoding6.png]]
[img[images/geocoding7.png]]
If you're done and still want to display our lat/long data on the web, go to [[CartoDB]]<<if visited("FindMaps")>>
Congratulations!
You've complete the Tommy Thompson stage! You've earned 10 points! If you'd like to get more points, try [[putting a digital map online|OnlineMap]]
<<endif>><<if visited("FindMaps" and "GeoreferenceMaps")>>
You've completed the Gerard Mercator stage! You've earned 20 points! You've learned to find a map and georeference it! If you'd like to get more points, try [[using data to make a digital map online|DataMap]]
<<elseif visited("FindMaps" and "Static Map")>>
You've completed the Gerard Mercator stage! You've earned 15 points! You've learned to find a map and put up a static map! If you'd like to get more points, try [[using data to make a digital map online|DataMap]]
<<elseif visited("FindMaps" and "Interactive Map")>>
You've completed the Gerard Mercator stage! You've earned 15 points! You've learned to find a map and put up an interactive map! If you'd like to get more points, try [[using data to make a digital map online|DataMap]]
<<endif>><<if visited("MercatorEnd" and "Coordinates" and "GeographicElements")>>
You've completed the Roger Tomlinson stage! You've earned 40 points! You've learned how to georeference data, geocode data and map it online, some very fundamental elements of mapping! Take your newly learned skills to map world!
<<elseif visited("Coordinates" and "GeographicElements")>>
You've completed the Roger Tomlinson stage! You've earned 30 points! You've learned how to geocode data and map it online! Take your newly learned skills to the map world!
<<elseif visited("Coordinates")>>
You've completed the Roger Tomlinson stage! You've earned 20 points! You've learned how to map latitude and longitue data. Take your newly learned skills to the map world!
<<elseif visited("GeoreferenceMW")>>
You've completed the Roger Tomlinson stage! You've earned 30 points! You've learned how to georeference a map and map it online! Take your newly learned skills to the map world!
<<endif>>