GIS for Local Government: Public Safety



Author and Maps: Brett Lucas, Stewart Berry


This article explores how to use GIS in local or Municipal Government.

Many local governments are being asked to have a more transparent relationship with their citizens, which has been supported by technologies like geographic information systems (GIS) and other data visualization tools which allows communities to manipulate, analyze, and present data in a geographic form.

GIS as a tool, can help local government decision-makers, policymakers, and others visualize data for a variety of applications. 

Free weekly newsletter

Fill out your e-mail address to receive our newsletter!

This could include:

  • Analyze crime patterns, assess public safety risk, and identify areas of concern.
  • Create maps to visualize and monitor changes in crime and emergency response.
  • Identify potential areas of public safety risk and plan for emergency response.
  • Examine how proposed changes in development or infrastructure might affect public safety.

As a local government, utilizing GIS can help you better communicate that data through a visual component. Many local governments have found ways to leverage geospatial data across an organization in areas like building permit inspections, code enforcement, and street repair.

GIS Software for Government

Maptitude mapping software is an ideal software platform for local governments (especially smaller municipalities on a tight budget at only $695) to leverage geospatial data across an organization.

Maptitude is a full featured desktop or online GIS and mapping software that gives you the tools, maps, and demographic data to analyze and understand how geography affects you and your community. 

In this article we will demonstrate an application of Maptitude in the municipal government sector for public safety mapping.

Public Safety – Mapping income and robberies

For this example, we will be using the City of Seattle, Washington. While Seattle is a large city, the city’s police department has crime data for the past 15 years or so available on their website available.

Cleaning data in Excel

This data comes in as a CSV file for Excel and is a huge file. It is strongly recommended that one should edit the file to remove years that are not of interest and/or fields that are not of interest, just to make the file more manageable. This should be done first in Excel. 

Importing the CSV file into Maptitude

Start Maptitude and select “New Map of my data/table/spreadsheet.” Bring in the .csv or .xlsx file that you downloaded earlier and have saved locally on your computer or network drive. 

When going through the dialog boxes of the “Create a MapWizard,” bring in your data by latitude/longitude. Your map should look like Map 1. Alternatively, if your data is structured by address, you can geode that data using Maptitude’s built in geocoder.

A street map showing crime locations in blue.
Map 1 – Maptitude Workspace showing crime locations.

Select by condition

For this example, we are interested in Robberies and those robberies that occurred during the last quarter of 2022. The easiest way to do that is via selection sets. Using the “Selection Toolbar,” go ahead and create two new selection sets. For “Selection:1” use the “Select by Condition” function.

Once in the “Select by Condition” dialogue box appears, choose the field “Offence Parent Group” = “Robbery.” In this case, the field is “Offence Parent Group,” the operator is “=,” and the field value is “Robbery.”

A screenshot of a select by condition interface.
Figure 1 – Select by Condition dialogue box.

Once that is done, create another selection set, calling it “Selection:2.” In the “Select by Condition” dialogue box, chose the field “Date,” operator “between and” and select a “date range.”

The formula should look something like “Date between “9/1/2022″ and “12/31/2022”. Your dialogue box should look something like the one shown in Figure 1. The resulting Map should look like Map 1.

A map showing crime locations with blue dots over a street map.
Map 2 – Maptitude Workspace showing crime locations, with both selection sets.

What we really want is just “Robberies that occurred between the dates of 9/1/22 and 12/31/22.” To do that we need to combine the two selection sets we just created, but only those locations that are in “both” selection sets.

A screenshot of a GUI for the combine selection tool in Maptitude.
Figure 2 – Combine Selection dialogue box.

Create a new Selection:3 which will end up being the combined selection set. To combine selection sets, click on Selection > Combine Selection and choose features that are in both Selection:1 and Selection:2.

The dialogue box should look something like Figure 2. The resulting map should look like Map 3.

A street map showing crime locations in blues and purple.
Map 3 – Maptitude Workspace showing crime locations, with the combined selection set (locations in yellow).

Creating a heat map of crimes

To better visualize the combined selection set we will want to create a heat (density or hot spot) map. Make “Crime Data Layer” with selections is your current layer.

To create a heat map, select the “Create Density Grids” icon, as a new dialogue box will appear. In the dialogue box, select “Crime Data Layer.” In the “Set selection,” select “Selection:1 and Selection:2.”

For now, we will leave the weighting field as “None,” and the Density calculation method as “Quadratic.” For settings, choose a radius of “0.5 miles” and a Cell Width of “0.02.” Click “ok.” A heat map will be created.

To better visualize the heat map, turn of the “Crime Data Layer.” The resulting heat map should look like the map shown in Map 4.

This map shows the highest concentrations of robberies between 9/1/22 and 12/31/22 being in the downtown Seattle area with some other nodes of concentration or “hot spots” throughout the city. 

A heat map showing density of crimes over a street map.
Map 4 – Maptitude Workspace showing a “heat map” of crime locations using the combined selection set.

Assigning a geographic area to the crime analysis

Next, we may want to assign the crime to a specific geography or defined area such as a census block group or even better yet a grid. A grid will help us geography constant otherwise known as “Ceteris Paribus.”

To do this, turn off the “Density” layer and make the “Crime Data Layer” the active layer. Also zoom into downtown Seattle, bounded by I-90 on the south and Lake Washington Ship Canal and Lake Union on the north.

Next, create a new selection set “Selection:4” which will be based on geography. In the “Selection Toolbar,” use the “Select by polygon” tool to select the crime locations within the defined geography outlined in Step 6. 

For this next analysis we are not concerned with dates and instead just robberies within this geography. We will then do another “combine selection” to combine “Selection:1” (Robberies) and ‘Selection:4” (geography) and combine that into a new Selection:5.

The resulting map should look like Map 5. With this new combined selection (Selection:5), export that out as a new layer called “Crime Data Layer-2” and add that layer to the map. You can use the “Compact Geographic file” option. 

A dot density map of crime locations overlaid onto a street map.
Map 5 – Maptitude Workspace showing Selection:5.

Adding socioeconomic data

Next, we need some socioeconomic data. To do that, bring in the “Census Block Group Layer.” Maptitude has this layer available for purchase. Depending on the geographic scale, one could use Census Tract level data.

Screenshot of a GUI show new grid layer in Maptitude.
Figure 3 – Grid dialogue box.

To keep geography constant, we need to create a Grid layer. To do that, click on Tools > Editing > New Grid Layer. A new dialogue box will appear. Name the layer “Grid-1”. This will be an area layer. Under “method,” select “Cover the map window with cells of a fixed size.”

For the fixed size (miles), choose 0.25 by 0.25, or quarter mile squares. The dialogue box should look something like Figure 3. The resulting map should look like Map 6. 

A screenshot showing a grid layer over a street map.
Map 6 – Maptitude Workspace showing a Grid layer.

Next, we need to add some data to the new Grid layer. First, we need to modify the table and add a new field for “Median Household Income” and a field for “Robberies”.

To do that, select Dataview > Table > Modify. Add a new field “Med HH Inc” and change the format to currency ($1,234) without decimals. Add a second field “Robberies” and change the format to number (1,234) without decimals.

Click “ok.” The dialogue box should look something like Figure 4. 

A screenshot showing the grid dialogue box in Maptitude.
Figure 4 – Grid dialogue box.

Adding overlay data

Next, we need to overlay some data. Make sure your “Grid-1” layer is your current layer. To do that select Dataview > New Dataview, and a new table will come up.

Right click on the ‘Med HH Inc” column and select “Fill.” In the Fill dialogue box select “Aggregate” radio button.

A new “Aggregate Data” dialogue box will appear. For “layer” select “Block Group.” Under Aggregate Settings, select “average of,” “[HH Median income],” and the click “ok.” Click “ok” once again.

The table should populate. Repeat this process once again for “Robberies” using “Crime Data Layer-2,” and using the Aggregate Settings, select fill with “Count.”

Create a color theme

Next, we want to create a “color theme” for the cells within the grid, to show lower income and higher income areas. To do that, click on the “Color Theme MapWizard.” Under “Field” select “HH Median income,” and then select “optimal breaks,” and select “five classes.”

Also, select “Treat zeros as missing values.” Under style for “other,” make it unfilled. Select a color ramp of red (lower income) to purple (higher income), with 40% opacity.

The resulting map should look like Map 7.

A map with rainbow colored grid cells.
Map 7 – Maptitude Workspace showing a Grid layer with lower/higher income distribution.

Create a graduated symbol theme

To create a visual correlation between income and robberies, we want to show robberies as a graduated symbol theme.

Make sure your “Grid-1” layer is your current layer. On the toolbar, select the “Size Theme MapWizard.” A new dialogue box will appear.

For a field, choose “Robberies.” For now, use the “Map Wizard” for size, and choose “Use perceptual scaling.” On the style tab, select a filled circle and a color of black, and select “Prevent overlapping labels.” Click “ok.”

A map will be populated with graduated symbols. The resulting map should look like Map 8.

A rainbow colored grid map with black graduated circles.
Map 8 – Maptitude Workspace showing a Grid layer with an income distribution and graduated symbols.

In looking at Map 8, we don’t want symbols out in the water. Basically, we want the cells that cover areas of water to have a value of 0.

To correct the map, select the “Size Theme MapWizard” again. Under symbol sizes for a value of “1,” select a size of “4.” For a value of “65,” select a size of “30.” The resulting map should look like Map 9.

A rainbow colored grid map with black graduated circles except over the ocean areas.
Map 9 – Maptitude Workspace showing a Grid layer with an income distribution and graduated symbols sized appropriately.


After reviewing Map 9, one can see higher amounts of robberies in cells that are colored red and yellow, which tend to be lower income areas. While this visual approach is not as precise as performing a regression, it does provide one with a useful visual correlation between income and robberies.

Maptitude is an extremely powerful software package for municipal governments for public safety. For example, law enforcement could use the results of such an analysis to better deploy police resources to select geographies where crime activity is occurring. 

More from Maptitude

Photo of author
About the author