Making a map is like learning a new language, it's a slow and frustrating process because there are a lot of concepts unique to mapping and almost none of it makes sense in the beginning. This first part of the workshop is a very quick overview of mapping concepts to help orient you to the process of mapmaking.
In this map of the United States we see three basic shapes—the cities are represented by points, the main rivers are represented by lines and the states are represented by polygons. While this is a very simple map, most maps that you've seen, even the most intricate ones only consist of these three basic shapes—points, lines and polygons. This type of mapping data is called "vector data." Vector data can be stored in several file formats with the most common being a "shapefile."
Another mapping concept that's important to know is that the visualizations that are displayed on the map are called the map's "features" and the data that's connected to those shapes are called the maps "attributes." Attribute data is stored in an attribute table, which is a lot like spreadsheet. One feature on the map can contain many attributes—the feature for the state of Florida has the attributes STATEFP
(the state ID), STUSPS
(the state abbreviation), NAME
(the state name), etc. Any type of data that you have at the scale of the state can be put in this attribute table. The attribute table stores all of the data and then you decide what data you want to visualize.
There is another important type of data that we will not be using in this workshop, but you should be aware of. It's called "raster data." Raster data is an image, such as a satellite image, with "geolocations"—which just means location data. It's beneficial to store geographic data as raster data when you are working with continuous data, such as heat or elevation.
Voilà!
Vector data consists of?
- points*
- pixels
- lines*
- polygons*
Do you remember the glossary terms from this section?
There are a few questions to consider that will help you choose the right tool for mapping:
- Static or Interactive? Do you want a static map, such as a high quality image that can be published? Or do you want an interactive web-based map?
- What is your budget? Can you only rely on free tools or do you have some money to put towards your mapping project?
- What is your time commitment? Do you have the time to learn higher level mapping skills, which is better for doing a spatial analysis, or do you want a tool that can allow you to make a map quickly because you just want to visualize spatial data?
- Will you be working in a team? Might you need a shared platform for creating your map?
Both ArcGIS and QGIS are software that you download onto your computer and can be used to perform spatial operations (analyze and manipulate your data), and make composite maps. Here is a quick comparison of the two.
For this workshop we will be using QGIS to perform spatial operations on our data. This is because QGIS is free and open source! However, since QGIS doesn't offer a way to make interactive maps, we will need a separate tool for that. ArcGIS does offer an online version that can be used to make interactive maps, but the limitation is that you need a paid subscription if you want to perform spatial operations. So for this workshop we're going to do a little hack in which we use two different mapping tools so we can have a completely free experience :) We will use QGIS to perform spatial operations. And then we will export the data and upload it into ArcGIS Online to make our interactive map.
Here is a quick comparison for some of the mapping software that you can use to make an interactive map.
The only option that is truly free is Leaflet, but it requires familiarity with coding. You can read more about the benefits and limitations of these tools in the blog post "Finding the Right Tools for Mapping" on the Graduate Center's Digital Fellows blog.
A friend looks over your shoulder as you are going through the workshop. They ask, "Why are you using two different mapping softwares?" How would you respond?
In introduction to mapping courses we are often told that every map starts with a lie—that the earth is flat. From the first step of having to choose a mapping projection and decide on which types of inaccuracies you would be willing to sacrifice, the process of mapping is filled with ethical choices. Over the years, many of these decisions have been obscured through a greater reliance on technology. Today, (far too many) mapmakers allow the software to make decisions for them. However, whether these are active or passive decisions, they are still decisions that affect the map and the viewers interpretation of the map.
Maps are powerful. The cartesian map which divides the world into coordinates has its origins as being a tool for nation-state building and colonialism. Due to this history, maps are often seen as authoritative and therefore representing objective Truth. Being a cartographer comes with a lot of responsibility. Still today, once you display something in the form of a map it's rarely questioned for its veracity. And yet, the real Truth is that all maps only represent partial truths.
So much of the mapping process is dependent on the positionality of the mapmaker and all of the subjective decisions that they must make when deciding what will be mapped, how the data will be manipulated, and how it will be visualized.
Important ethical decisions that every mapmaker must consider are:
- What data should I use? If you choose to use data that's already collected (e.g. Census data), are you using it because it's the easiest to access or because it's the most appropriate data to answer your research question? What are the limitations of using data that hasn't been collected or managed by you?
- How should I classify the data? What categories will you create? For example, if you are working with racial demographics, will you report on the categories such as Latinx, non-Latinx White, non-Latinx Black, Latinx White, Latinx Black, etc, or will you provide broader categories such as people of color and white? What are the implications of choosing more general categories?
- At what resolution or scale should the data be aggregated? If you are studying a phenomena at the neighborhood level, how do you define the boundaries of a neighborhood? Is it based on the school district, the Census Designated Place (CDP), the voting district, or maybe a boundary that doesn't have a formal delination, such as a sense of community among people?
- What are the implications of aggregating the data at a certain scale? For example, let's say you are studying the differences between urban and suburban areas. If you aggregate your data at the level of counties, what could be missing from that representation of the data? Is something happening at the level of the neighborhood or town, which could prove useful to answer your research question? This is not to say that the smallest scales are always the best to work with, but rather to suggest that when we aggregate data, we need to be aware of what distinctions we are hiding in the process.
- What colors and symbols should I use? Should you represent a population in red or blue? Red normally signals something that is alarming, while blue is a more neutral color. These subjective cartographic design decisions greatly impact viewer's understanding of the map.
For more guiding questions on ethical decision making, please see "Ethical Decision-Making", a robust resource put together by the "Community of Earth Educators."
With all of the subjective decisions that go into mapmaking, those working in the tradition of feminist GIS and critical cartography have stressed the importance of contextualizing one's map. Maps do not speak for themselves. We need to add context that allows the viewer to understand all of the decisions that were made while making the map. This form of transparency will help tell the story that you are trying to communicate.
For more about the history of mapping, and to learn about current countermapping projects, see these resources:
- Manual of Collective Mapping. Critical cartographic resources for territorial processes of collaborative creation.
- Counter Mapping: Zuni Maps.
Have a look at this map of vaccination by county and state. Imagine the map in red instead of green. Do you think that might shift some people's feelings towards the vaccine, even if on a subconscious level? Also, have a look at the two different maps--one aggregated by county and the other by state. How does the level of aggregation change what the map tells us?
Every map should start with a good research question. But what makes for a good mapping research question? The key, I find, is to start with a simple, answerable question. It's often the case that a seemingly simple and boring question can lead to bigger and more interesting questions. However, if you start with the big, complex question, it could be too overwhelming. So start small and then build on your question, if needed. Also, what do I mean by "answerable"? In the mapping world, this can mean several things. It could mean a question that can be answered by using preexisting data or data that can realistically be collected by the mapmaker. Suppose you want to map how Americans in different counties feel about a certain issue, but that national survey hasnt been done and you don't have the resources to do it, then this would fall under the category of an unanswerable question. Also if you want to map boundaries that havent been created, such as homeschool pods, then this might be an unanswerable question (again if you don't have the resources to create the boundary from scratch).
By these standards, for this workshop we have a simple, easily answerable question.
Do Black Lives Matter protests tend to take place more in majority Black neighborhoods, perhaps as a tactic to build solidarity, or in majority non-Black, perhaps as a tactic to raise awareness?
What kind of data do we need to make this map?
- Location of protests. This data didn't exist, so I had to create it. I tried to find all of the protests that took place from May 28, 2020 to June 3, 2020. Since this was based on my own ability to capture the data from news articles, I assume that there are protests that happened during that week that are not in my dataset. When I publish my map, it will be important to state this assumption and include the methodology for how this data was collected.
- Shapes to represent the neighborhoods. For NYC neighborhoods we can download a shapefile (which is a form of spatial data) from NYC Open Data. The file can be downloaded here. Click on "Export" and select "Shapefile". A compressed folder will download. Move the folder out of your downloads and into a folder on your computer were you will be keeping all of the data for this workshop. When you open the folder you will notice there are four different files in there that all have the same name, yet are a different file type. In order for a shapefile to work, all of this data needs to stay together. Please compress the folder, so that the entire folder can be uploaded into our mapping software when we are ready to use it.
- Census data on race by neighborhood. Census generated demographic data can be downloaded as a CSV file from the Census website. I've already downloaded the spreadsheet and cleaned it up for us so that it only has the variables that we are interested in—
GeoName
(neighborhood name),GeoID
(a unique identifier for each neighborhood), andBINHP
(Percent Black). You can find this file here
To get a better idea of what we will be building together, you can take a look at a final version of the Location of BLM Protests Map.
Since our neighborhood data are in two separate files, we'll need to perform a "spatial join" to combine them into one file. During the spatial join we will add the data on percent black by neighborhood that's in our CSV to the neighborhood shapefile, which is a polygon layer. Remember that only vector data (points, lines and polygons) or raster data (pixels) is geographic data. Also, remember that vector data is typically stored as a shapefile, so when you have a shapefile, you know it's geographic data. A CSV is not geographic data, even if it might have geographic data in it, such as addresses. A CSV is a text file, so it needs to be combined with geographic data to be visualized on a map. This is why we will need to use a spatial join.
Well, I'm glad you asked because a spatial join is one of the most common GIS operations! There are two types of spatial joins--spatial join by attribute and spatial join by location. Both of them are ways that the mapping software will let you add data from one map layer or file to another map layer. A spatial join by attribute is used when you want to join non-spatial data, such as a text file, to spatial data, such as a shapefile. A spatial join by location is used when you want to join two layers of spatial data (e.g. a points layer to a polygon layer). Let's say you are working with the map of the U.S. used in the introduction and you want to aggregate information at the city level (the point layer) to the level of the state (the polygon layer). For this you will use a join by location since you are comparing two layers with spatial data.
Since we are joining a CSV file (non-spatial data) with a shapefile (spatial data) we will need to use a join by attribute.
In order to do this both files need to be the same resolution (e.g. NYC neighborhood). A resolution is the scale at which the data is aggregated and displayed. Additionally, both files need to have a column with the same unique identifiers—this will serve as a key to match the two data files. When you work with data from the government, such at Census data, each geographical unit (e.g. each different neighborhood) will be given a unique identifier, so if both your data and your shapefile are from the government then the unique identifiers will match.
Now that we have the concepts for what a spatial join means, we can move on to performing the spatial join on our data.
A spatial join by attribute is used when you want to join which combination of layers:
- spatial data to non-spatial data*
- spatial data to spatial data
Do you remember the glossary terms from this section?
We will use QGIS which is a free and open source mapping software that will allow us to do pretty much any spatial operation that you could ever want! If you haven't yet installed QGIS you can do so by following these installation instructions
First, go ahead and open QGIS. When you open the application, you'll see an interface that looks like this:
Let's add our data that needs to be joined. Follow the steps below to help you through the process.
- To add our CSV of demographic data,
racebyneighborhood.csv
, open the Data Source Manager—this button is located in the top left corner of the interface and looks like three pieces of colored paper stacked on top of each other. - When the Data Source Manager is open, select the Delimited Text option.
- On the right side of the File name section, click on the three dots to locate the file. Then click Add.
You should now see the file appear in your Layers panel. You'll also see that nothing happens in your map display panel; this is because a CSV file is a text file. Remember that only vector data and raster data has features that can be mapped. A CSV file by itself is not mappable. That's why we need to combine it with the neighborhood shapefile. Note that if you happen to have precise location data in your CSV, such as addresses or latitude and longitude coordinates, the mapping software will be able to read it and convert it into vector data through a process called geocoding. When you don't have precise location data, you will need to use a join by attribute to add the text data to a shapefile.
Now let's add our shapefile of New York City:
- Go back to the Data Source Manager and this time select Vector.
- Under Source type, the "file" option should be selected.
- Where it says Vector datasets, use the browse feature again to find the shapefile on your computer and click Add.
Now you should see that the file shows up in your Layers Panel, and it also displays as a map layer on your display panel.
Let's look at the data in the attribute table to see what we're working with. Each file has its own attribute table, so let's look at them one at a time. To do so, right-click on the racebyneighborhood.csv
file and select "Open attribute table." If you see the three variables—GeoName
, GeoID
, and BINHP
—then we're good to go!
Let's open the attribute table for the "Neighborhood Tabulation Area" shapefile. Right-click on that layer and select "Open attribute table."
In the table, you will see the variables: boro_code
(borough code), boro_name
(borough name), county_fip
(the unique identifier for each county), ntacode
(the unique identifier for each neighborhood), ntaname
(neighborhood name), shape_area
(surface area of each neighborhood in decimal degrees) and shape_leng
(the length of the perimeter of each neighborhood in decimal degrees).
You will notice that both files have a variable in common—the ntacode
in the shapefile is the same as the GeoID
in the CSV file. These two variables will serve as our keys that will be used to match and join the files together.
A spatial join won't work unless the fields are the same data type —integer, double, string, etc. To see the field type, double-click on each layer and navigate to the "Fields" tab. The ntacode
and the GeoID
are both string variables, so we are all set for our join.
Now we are ready for our spatial join!
- In the layers panel, double click on the shapefile layer, "Neighborhood Tabulation Area".Then click on Joins and click on the green plus sign. A new dialog will appear on the screen. This is where you will configure your spatial join.
- Select
racebyneighborhood
for the Join layer option since that is the map layer you are joining to the neighborhood shapefile. - Select
GeoID
for the Join field option. - The Target field should be
ntacode
. - Where it says Custom Field Name Prefix, you can click the checkbox and change the prefix. This prefix will be added to the variable name of every join layer. You can change it to something shorter or you can simply delete the text so no prefix is added. I'm going to delete mine.
- Lastly, click OK to save the configuration of the spatial join.
- To run the join, click OK in the following dialog.
Note: GeoID
and ntacode
are the two variables that match from the two mapping layers. This is why we are using them in step 3 and 4 above as the Join field and Target field.
To check to see if the join was successful, we'll need to look at the neighborhood shapefile's attribute table and see if the variables from the CSV file are there.
Right-click on the shapefile layer and select Open attribute table. If you scroll to the right you should see the three variables from the CSV file—GeoName
, GeoID
, and BINHP
. If you see them, then you've successfully completed a spatial join!
Since our shapefile layer has been updated with new data, lets rename it. To do so, right-click on the shapefile layer in the Layers Panel and select Rename. I'm going to rename mine NYCntaPerBlack
. This name will let me know that the data has New York City neighborhood tabulation areas and percent black.
Mapping softwares typically offer two different types of spatial joins—join by attribute and join by location.
- Join by attribute is the type of join what we just did; it’s based on matching two layers based on a shared attribute or variable.
- Join by location is when you have two shapefiles that you want to combine based on where the features are located on the map. For example if you have a map of US states and you want to add information about its cities, you can run a spatial join by location. To learn more about this type of join, check out How Spatial Join Works in GIS by GIS Geography.
The Data Source Manager is used to:
- import files into QGIS*
- organize data files
- stack map layers
- export map layers
What's needed to perform a spatial join by attribute:
- There must be a column in both datasets that matches and will serve as a key to link the two datasets.*
- The columns that serve as a key must be the same data type.*
- The text file must have precise location data, such as an address or latitude and longitude.
Now our neighborhood shapefile (containing the demographic information) is ready to be exported from QGIS and uploaded into ArcGIS Online where we will be able to turn it into an interactive map.
Since shapefiles are actually a set of 4-6 files, it's helpful to create a folder for them so they don't get mixed up with your other files. So, before we export the shapefile file, let's create a folder for it.
- Create a new folder somewhere on your computer where you are keeping the data for this workshop.
- Let's name the folder
NYCntaPerBlack.
Now we're ready to export the data.
- In QGIS, right-click on the neighborhood shapefile in the Layers panel. Then select Export and Save Features As.
- Under File name we need to tell QGIS which folder to export the file into. Use the three dots to navigate to the folder
NYCntaPerBlack
- Next, you can click off the check box at the very bottom of the "Save Vector Layer as…" configuration box, where it says Add saved file to map. Since we already have this as a map layer in QGIS, there's no need to add it as another layer in the software.
- You can leave everything else in the configuration alone. Lastly, click OK to complete exporting the data.
Navigate to your NYCntaPerBlack
folder and check to see if all of the shapefiles are in there. There should be around 4–6 files in the folder. If there are, then your export was successful.
The last thing we have to do is compress the folder. ArcGIS Online will only import compressed shapefiles. If you're working on a Mac, right-click on the NYCntaPerBlack
folder and click compress. If you're on a PC, right-click on the NYCntaPerBlack
folder and select Send to and then Compressed (zipped) folder.
Why do we create a folder for the exported shapefile?
- The export won't work without it.
- Shapefiles are actually 4-6 files, so it's a way to keep them organized and prevent accidentally separating them.*
- ArcGIS will only import compressed shapefiles, so we need to create a folder to compress or zip the file.*
Now we will be using ArcGIS Online to make the map interactive. Remember that we could have done everything in ArcGIS if we had the paid version, but since we are working with the free public version we cannot perform any spatial operations, such as the spatial join that we just did. That's why we used QGIS first. Now that we have the data exactly how we want it, we can use ArcGIS for free to visualize the data and create an interactive map.
First, you'll have to set yourself up with a free ArcGIS Online public account. To do so, open ArcGIS Online, and click "Sign in." If you don't already have an account, you can create one for free using your email, or your Google, Facebook or Github account.
Once you've logged in, let's open a new map project by selecting "Map" in the main menu.
Let's get acquainted with the interface.
Now, let's import and format our neighborhoods shapefile.
- Click on Add.
- Click Add Layer from File.
- Select Choose File. Then navigate to where you have the compressed
NYCntaPerBlack
file saved on your computer. - Select "Generalize features for web display". I've tried making maps with both this option and "Keep original features" and I've never noticed any difference.
- ArcGIS describes the benefits of this feature the following way: Generalizing reduces the precision of the shapefile layer to approximately 1 meter in Web Mercator and will remove vertices within 10 meters in Web Mercator. This should maintain an informative and accurate display of your features while reducing the overall size of your data and allowing your layer to quickly display in the map.
- Click Import Layer.
You should now see something that looks like a map of New York City, where some automatic attribute (for example, borough) has been chosen by ArcGIS for coloration. In the example below, ArcGIS has automatically selected borough as an attribute to color on the map.
Let's change the attribute so that the colors represent the percentage of Black population in New York City's neighborhoods.
- Under Choose an attribute to show, select
BINHP
which stands for Black Non-Hispanic Population. - Click around with the Drawing Styles to see which you think works best. I would suggest using the first option, a choropleth map style that shows the value by the intensity of the color.
Let's change the color to something that makes sense.
- In the Counts and Amounts (Color) box click Options.
- Click Symbols, and change the color. I'm selecting the black/white color ramp since I think it fits in with the story I'm trying to tell.
- Once you've chosen your color ramp, click OK.
- Optional: You can click on Classify if you want to change how the data is visualized and how many categories are created. "Natural breaks" is a good option because it increases variability between classes while decreasing it within classes.
- Click the OK button at the bottom of the Layers Panel.
- Finally, click Done to save your changes to the map. If you don't click Done, it will revert to what you had before.
You should now see your maps styled with your new color ramp. You'll also see the NYCntaPerBlack
map layer in the Layers Panel.
Play around with the symbology settings more. See how the map looks when you change the transparency, the number of classes and other features. To go back to the symbology settings, hover over the name of the map layer in the layers panel and select the change style button (the one with with three shapes--circle square and triangle). Then click Options.
If you click on your map, you'll see a pop-up window with all of the information contained in the attribute table.
As you'll see, the pop-up doesn't look very nice. The names won't make much sense to the map viewer, and the viewer probably wouldn't be interested in some of the information, like the ntacode
.
Let's configure our pop-up so that it looks better and provides more useful information.
- In the map's Layers Panel, hover over where it has the name of the shapefile
NYCntaPerBlack
, and you will see some options appear below it—"Show Legend", "Show Table", "Change Style", and "More Options." - Select More Options by clicking the three dots below the name of the map layer.
- Select Configure Pop-up. The Layers Panel will turn into a panel for configuring the pop-up.
Let's explore the options that we have for the pop-up.
- The first thing you'll see is a checkbox for turning on and off the pop-up. We're going to leave ours on.
- In the Pop-up Title, you can enter a name that will be displayed at the top of every pop-up box. You can type in something. Or you can have one of the attributes displayed. Let's have the neighborhood name displayed in the pop-up title. To do this, click the plus sign to the right of the text box and select
ntaname
. Next tontaname
, write "(Black%). Now the title will show the name of the neighborhood and the text "(Black%)". - In the Display, select the drop-down to see the list of options. The options for what you can display in the pop-up are "A list of attributes", "A description from one field", "A custom attribute display", and "no attribute information". We are going to select A description from one field since we are only interested in showing the value for Percent Black. Then in the next drop-down select
BINHP
. - Then click OK to save our changes.
Now when you click on the map you should see a popup with just the name of the neighborhood plus the text "(Black%)" and then in the box you will see the value for Percent Black.
Now we're ready to import our next mapping layer. This one will be the CSV file that we have of several BLM protests that took place during one week in June. We want to layer this data as points. The point layer will be displayed over the polygon map layer to see if the protests tended to take place in neighborhoods that were majority Black, or not.
Let's import the file.
- Select Add.
- Select Add Layer from File.
- Select Choose File, and navigate to where you have the file
1 Week of Protests.csv
saved on your computer. - Select Import Layer.
At this point a box should appear that says "Add CSV Layer" at the top and has information about location, coordinates and addresses.
This is the ArcGIS's way of asking you if you want to convert the addresses that are stored in the CSV file into points on the map. This process is called "geocoding." Geocoding is a spatial process that uses a geographic address locator to match addresses with location coordinates and create a point layer. It turns a text file (CSV) into a vector file (points layer). This process will only work if you have addresses or coordinates stored in your CSV file, and luckily we do! If you open the CSV file in a spreadsheet manager, you'll see that we have the fields address
, city
, state
and zip
. This is all the geographic address locator will need to be able to locate the address for each protest and create a map layer of points.
To geocode the CSV file, the Field Name column (pulled from the CSV file) needs to match with the Location Fields column (which is the geocoder column). Make sure that the following fields match:
- Field Name: Address = Location Fields: Address or Place
- Field Name: City = Location Fields: City
- Field Name: State = Location Fields: State
- Field Name: Zip = Location Fields: Zip
If they don't match, then click on the cell(s) to change it. Most likely, since the mapping software is pretty good at this stuff, they will all be automatically matched, so you won't have to change anything. Finally, click Add Layer.
Note: ArcGIS will only geocode up to 100 entries. If you have more than 100, you can use the Census Geocoder which allows you to geocode up to 1000 entries.
Do you remember the glossary terms from this section?
Now you should see a series of points on top of the neighborhood map layer. ArcGIS Online will automatically use an attribute to style the point layer. In my example, it automatically chose "Start location."
Let's change the style of the points layers so that the symbology is not based on an attribute. I'm not really interested in displaying any particular attribute along with the protests. I just want to see the location of the protests.
- Under Choose an attribute to show, select "Show location only."
- Now let's change the color of the points. In the box that says Location (single symbol) choose OPTIONS.
- Select Symbols.
- Feel free to play around with the options for the style of the point. You can change the shape, the fill color, the outline, and the size. You can even upload your own image. For mine, I chose an orange star that's size 12.
- Select OK.
- And select OK again.
- Finally, select DONE to save your changes.
With this map, we should already be able to answer our research question. We wanted to know if there might be a relationship between the location of BLM protests and the racial demographic of the neighborhood, specifically if the neighborhood is majority Black. Here we can already see little correlation between the location of the protests and the racial demographic of the neighborhood. We can observe, however, that many of the protests are taking place in centrally located places in Manhattan and in some parts of Brooklyn. If we click on the points, we'll also see that many of the location starting points are popular sites and meeting places, such as Times Square, Union Square, and Bryant Park.
Play around with the symbology settings a bit more. See what happens when you change the visible range. What do you think this option is for? For the answer check out this article.
Let's format the pop-ups for the protest locations so that the map viewer can learn more about the sites. The attributes that can be displayed are: "Date", "Start Location", "Address", "City", "State", "Zip", "Photo", "Details."
Out of these options, let's display the "Start Location", "Photo" and "Details."
- In the Map Layers Panel, hover over where it has the name of the points layer "1 Week of Protest" and select the three dots for More Options. Then select Configure Pop-up.
- In Pop-up Title write "BLM Protest"
- In Display select "A list of field attributes."
- Select Configure Attributes.
Now you should see a dialog that looks like this:
Here, you can decide which attributes to display by clicking the checkboxes under the Display column. You can also edit the TextBox Type by having the checkboxes under the Edit column selected. Lastly, you can change the name that appears for the attribute in the pop-up. To do this click on the words in the column Field Alias and it will allow you to put in new text. Let's try some of these options.
- In the Display column select "Start Location" and "Details." Even though we also want to add "photo" we are not going to check that off here. Media needs to be configured through a different process, which we'll do next.
- You don't have to change anything in the Edit column.
- Under Field Alias click on the word Details and change it to "Protest info."
- Click OK.
Now let's add our photo to the pop-up. Under Pop-up Media select Add < Image. You should see the following dialog:
Let's try some of the options that are available to us.
- In Title delete the text and leave it blank.
- Leave the Caption blank.
- For the URL, click the plus sign and select "Photo". You might have to scroll down to find it in the list of attributes.
- Click OK.
- Click OK again to save your changes.
Now you should see a nicer looking pop-up when you click on the points on your map. Some points don't have any "Protest info," but for all of them you should see the "start location" and photo.
A map legend is a visual explanation of the symbols used on the map. It typically includes a sample of each symbol (point, line, or polygon), and a short description of what the symbol means.
Let's have a quick look at the legend to make sure that it will be informative for our map viewer.
- In the Map Layers Panel, at the top, you should see three icons—an "i" with a blue circle around it, followed by a paper with blue writing, and then a bulleted list. Click on the icon that looks like a bulleted list; that's the legend icon.
- I think the legend generally looks okay, but it currently displays the name of the map layer, which can be a little confusing for the viewer, especially the layer
NYCntaPerBlack
. Let's rename the layers so it will be easier for the viewer to understand. - Go back to the Map Layer panel where you can see the hyperlinked layers. You can do this by clicking the icon that looks like a white sheet of paper with blue writing.
- Then click on the three dots for More Options and select Rename.
- Do this for both layers to rename them something that's easier to read. I'm going to name mine "BLM Protests (May 28 to June 3, 2020)" and "NYC Neighborhoods by Percent Black."
Now it's finally time to save and share your map!
- To save the map, click the Save button (with the floppy disk icon). Enter your title, tags, and summary to describe the map. Then click Save Map.
- To share your map, click on the Share button (with the chain link icon).
- Click the checkmark next to Everyone (public) so that you can share the map with the public. Once you do that, all of the share options will become available to you, including sharing the URL to the map or getting embed code to put the map on a website.
Congratulations! You've made an informative and interactive map with two layers of spatial data, multiple pop-ups, and even multimedia with your pop-ups!