Hometown Map

Interactive Map

Reflection

Design Inspiration

My basemap design was inspired by Andy Warhol's pop-art cow prints, specifically the blue and purple color variations. I was drawn to the bold, high-contrast palette and the way Warhol used flat, saturated colors to create something playful but still intentional. Instead of creating a realistic or muted map, I wanted mine to feel graphic and stylized.

I translated that inspiration into my basemap by using a cool-toned blue and purple base palette for land and water, then layering brighter pinks and purples for roads. Rather than keeping traditional cartographic colors (like gray roads or light blue water), I leaned into contrast. Major roads became brighter and more saturated, while minor streets were softer and lighter to maintain hierarchy. I also adjusted opacity and width across zoom levels so the map felt cohesive whether you were viewing Lincoln at a city scale or zooming into specific neighborhoods. The goal was for the map to feel artistic without becoming unreadable.

Cartographic Challenges

The biggest cartographic challenge was designing across multiple zoom levels. A map that looks balanced at a city scale can fall apart when zoomed in too far or out too far. I had to adjust road widths using zoom stops so major highways didn't dominate the screen at small scales but still stood out when zoomed in.

Another challenge was deciding what to simplify. I turned off unnecessary layers and minimized certain labels so the map wouldn't feel cluttered. Because my palette was bold, too many features competing visually made the design overwhelming. I had to think intentionally about hierarchy: what needs attention first, what should fade into the background, and how color intensity affects visual weight.

Technical Challenges

The technical side was honestly more complex than the styling. First, my Mapbox style ID was incorrect because I had copied the entire URL instead of just the style ID, which broke the tile URL in my Python script. Then I ran into environment issues. Python wasn't properly installed, and VS Code didn't have an interpreter selected.

After that, my CSV file became corrupted due to commas inside image URLs. Because some URLs contained parameters like w=1200, pandas interpreted those commas as column breaks. This caused mismatched columns and errors when reading the file. The solution was wrapping all fields in quotes so the commas inside URLs were treated as part of the string.

I used both ChatGPT and Claude Opus 4.6 to help debug these issues, but I made sure I understood what was happening at each step, especially how APIs construct URLs, how f-strings work, and why CSV formatting matters for data parsing.