headshot of Patrick McKinney

I am a cartographer and developer interested in telling the stories of communities through maps and technology.

Featured Articles

eyeglasses resting on an open book

My Attempt To Make The Map Series StoryMap 'More Maps' Button More Intuitive

September 12, 2019

I made some edits to the Esri StoryMap Map Series template to improve the user experience. I share my solution for better informing users of the purpose of the button that opens a menu of additional map tabs.

a screen-shot of a CodePen demo

Esri Map Service Loading & Error Events in Leaflet.js

February 8, 2018

Hooking into the loading and error events of the Esri Leaflet library, you can add messages to users if a service fails to load on the map. You can also create a loading screen that disappears after the services have loaded on the map.

a line of wooden fence posts

Converting Parcels to Address Points With a Python Script

August 2, 2017

Using Esri ArcPy search cursors and the centroid properties of polygon layer, you can create a point layer using a Python script. I developed such a script to assist with a regional data update process for a group of counties.

Featured Projects

Cumberland County Recycling & Disposal Map

screenshot of the Residential Recycling & Disposal web mapp application

This web map application was developed using Leaflet.js to assist residents of Cumberland County learn about solid waste disposal and recycling in ther municipality. The map's theme is based upon the BootLeaf project.

Learn More

South Middleton Township Official Map

screen shot of the South Middleton Township official map

This update to the existing Official Map included designing a visual hierarchy among thematic and reference layers, and developing a balanced system of labels for features.

Learn More

Cumberland County Weeekly Data Updates

sketch diagram of the weekly data update script for Cumberland County

Various python scripts have been developed using the Esri ArcPy library to automate weekly data update processes using Windows Scheduled Tasks.

Learn More