Visualization techniques have proven to be critical in helping crime analysis. By interviewing and observing Criminal Intelligence Officers (CIO) and civilian crime analysts at the Tucson Police Department (TPD), we found that two types of tasks are important for crime analysis: crime pattern recognition and criminal association discovery. We developed two separate systems that provide automatic visual assistance on these tasks. To help identify crime patterns, a Spatial Temporal Visualization (STV) system was designed to integrate a synchronized view of three types of visualization techniques: a GIS view, a timeline view and a periodic pattern view. The Criminal Activities Network (CAN) system extracts, visualizes and analyzes criminal relationships using spring-embedded and blockmodeling algorithms. This paper discusses the design and functionality of these two systems and the lessons learned from the development process and interaction with law enforcement officers.