GEOG 863:
Web Application Development for Geospatial Professionals

Assignment

PrintPrint

Assignment

For this week's assignment, please select from one of the scenarios below.  Regardless of the scenario you choose, I'd like you to follow these guidelines:

  • Use the JavaScript prompt() method to ask the user for a subset of data to map (e.g., a state).  We'll see better methods for getting user input and return to your selected scenario to "do it right" in the next lesson.
  • Configure your app so that appropriate information is displayed through popup windows.
  • Use ColorBrewer to obtain logical color values.
  • Look at the service in the ArcGIS Online Map Viewer or ArcGIS Desktop to get a sense of its data fields and values.

Before reading over all of the scenarios, go to the sign-up page in Canvas to see which of them are still available. Here are the scenarios:

  1. 2020 U.S. Presidential election
    Using this U.S. Presidential election feature service, prompt the user for a state, then display a county-level map of the voting in that state. Use ClassBreaksRenderer to display the margin of victory for either candidate. Set up class breaks like 0-10%, 10-20% and >20% with smaller-margin counties drawn in a light shade of blue/red and the larger-margin counties in a dark shade. The best way is to set the renderer's valueExpression property to an Arcade expression that calculates the value for mapping.  Note: The "Minn" in the service name refers to the name of the author, not that the data are limited to the state of Minnesota.  Also, the service defaults to displaying results from 2012, but it provides results for the 2012, 2016 and 2020 elections.
  2. World cities
    Using the World cities feature service, prompt the user for a continent, then display the cities in that continent symbolized by population (varying either size or color). This scenario is a bit trickier than the others in that there is no continent identifier in the Cities layer. To identify the correct cities, you can query this Continents feature service to get the polygon geometry of the selected continent, then use a spatial query to find the appropriate features in the Cities layer.
  3. U.S. National Parklands
    Using the U.S. National Park lands feature service, prompt the user for a National Park Service region, then display the parklands within that region. Use different symbols for the common park types (National Monument, National Historic Site, National Park, National Historical Park, National Memorial) and depict all other types in a class called Other.
  4. U.S. County Demographics
    Use this Popular Demographics of the United States feature service. Don't worry that it says it's been deprecated the updated version is in beta and requires a subscription (the updated version is here - New Demographics version but you'll want to setup your own renderer if you're testing it as its default symbolises as points not polygons making it seem like it's not loading. Also make sure you grab the data not the web map... It contains population fields for five US generations (Greatest Generation, Baby Boomer, Gen X, Millennial, and Gen Z). Choose a generation (don't make this a user option, just pick one that interests you) - Prompt the user for a state, then display the counties in that state according to the generation's population as a percentage of total population. Similar to the election scenario, you can calculate the population percentage using valueExpression and an Arcade expression in either ClassBreaksRenderer or VisualVariable.
  5. Alternative fuel stations
    Using the alternative fuel stations feature service, prompt the user for a state, then display the alternative fuel stations in that state. Use PictureMarkerSymbol to show the fuel types as appropriate icons. I've put together a set of free icons that can be downloaded here.
  6. 2016 EU Referendum in the UK
    Using this 2016 EU Referendum feature service, prompt the user for a region (e.g., Northern Ireland, North East, North West), then display the voting districts in that region based on their remain/leave vote. The remain/leave vote percentages add to 100, so you can safely base your ClassBreaksRenderer on one of the two percentage fields.  As with the presidential election scenario above, set up vote margin classes like 0-10%, 10-20%, >20% and use shades of one color to depict the remain districts and shades of another color to depict the leave districts.  Note: this service will not display properly in a SceneView using API version 4.8 or higher.  So use a MapView or version 4.7 of the API.
  7. Wildfires
    Using this Historic Wildfire Perimeter Service, prompt the user for a year (between 2000-2018), then display the fire perimeters from that year.  Render the layer by fire size in acres using either ClassBreaksRenderer or VisualVariable with an appropriate color ramp. 
  8. Hurricanes
    Using this Hurricane feature service from Living Atlas, prompt the user for a year, then display hurricanes from that year.  The service has a default symbology, but I'd like you to override that using dotted lines (in a 2D Renderer because it's not available in 3D) rather than solid and a light-to-dark color ramp to indicate the hurricane category (using the Wind_Speed field).  You'll find the ClassBreaksRenderer class to be helpful. 

Note: ArcGIS Server-hosted feature services are configured by default to return a maximum of 1000 features.  This limitation comes into play for some of the scenarios above and is clearly not ideal.  The publisher of the service has the ability to override this setting, but app developers like yourselves do not.  One solution for developers is to query the service recursively, such that the full set of features is retrieved in 1000-feature chunks.  If you found that you were able to complete the assignment fairly easily, you might consider researching and attempting such an approach.  But we will not be expecting you to work out a solution to this problem if it affects your app.

Deliverables

This project is one week in length. Please refer to the Canvas course Calendar for the due date.

  1. Remember to sign up for a scenario before you start working on it.
  2. Edit your e-Portfolio so that it includes a link to your map and post a link to your e-Portfolio through the Assignment 7 page.  (80 of 100 points)
  3. Beneath the map or on your e-Portfolio page, provide a short description of your map and reflect on what you learned from the lesson, what you found challenging, and how you might apply what you learned to your work.  (20 of 100 points)
  4. Complete the Lesson 7 quiz.