public void redrawMap() {
		if (_startNode == null && _endNode == null) {
			return;
		} else if (_startNode == null) {
			_centerLat = _endNode.latitude;
			_centerLon = _endNode.longitude;
			_scale = DEFAULT_SCALE;
			_streetView.clearCache();
			_streetView.repaint();
			_pathView.repaint();
		} else if (_endNode == null) {
			_centerLat = _startNode.latitude;
			_centerLon = _startNode.longitude;
			_scale = DEFAULT_SCALE;
			_streetView.clearCache();
			_streetView.repaint();
			_pathView.repaint();
		} else if (_startNode != null && _endNode != null) {
			_centerLat = (_startNode.latitude + _endNode.latitude) / 2;
			_centerLon = (_startNode.longitude + _endNode.longitude) / 2;
			
			// scale the map view to fit both the start and end nodes
			_scale = GUI_SIZE / (Math.max(Math.abs(_startNode.latitude - _endNode.latitude), Math.abs(_startNode.longitude - _endNode.longitude)) * 1.5);
			_streetView.clearCache();
			_streetView.repaint();
			_pathView.repaint();
		}
	}