 				outputGraphics.lineTo(x, y);
 			}
 			
-			if (debug)
-				return;
-			
-			if (shapeType == GeometryType.POLYGON)
-				outputGraphics.lineTo(firstX, firstY);
+			if (!debug)
+				if (geomType == GeometryType.POLYGON)
+					outputGraphics.lineTo(firstX, firstY);
+		}
+		
+		private function drawImage(key:IQualifiedKey, dataX:Number, dataY:Number, dataBounds:IBounds2D, screenBounds:IBounds2D, outputGraphics:Graphics, outputBitmapData:BitmapData):void
+		{
+			tempPoint.x = dataX;
+			tempPoint.y = dataY;
+			dataBounds.projectPointTo(tempPoint, screenBounds);
+			// round coordinates for faster & more consistent rendering
+			tempPoint.x = Math.round(tempPoint.x);
+			tempPoint.y = Math.round(tempPoint.y);
+			
+			var bitmapData:BitmapData = pointDataImageColumn.getValueFromKey(key) || _missingImage;
+			var w:Number = bitmapData.width;
+			var h:Number = bitmapData.height;
+			tempMatrix.identity();
+			if (useFixedImageSize.value)
+			{
+				var maxSize:Number = Math.max(w, h);
+				var scale:Number = iconSize.value / maxSize;
+				tempMatrix.scale(scale, scale);
+				tempMatrix.translate(Math.round(Math.abs(maxSize - w) / 2), Math.round(Math.abs(maxSize - h) / 2));
+				w = h = iconSize.value;
+			}
+			tempMatrix.translate(Math.round(tempPoint.x - w / 2), Math.round(tempPoint.y - h / 2));
+			outputBitmapData.draw(bitmapData, tempMatrix, null, null, null, true);
 		}
 		
 		public function dispose():void

			if (debugGridSkip)
				simplifyDataBounds = null;

			var recordIndex:Number = task.asyncState[RECORD_INDEX];
			var minImportance:Number = task.asyncState[MIN_IMPORTANCE];
			var d_progress:Dictionary = task.asyncState[D_PROGRESS];

					// round coordinates for faster & more consistent rendering
					tempPoint.x = Math.round(tempPoint.x);
					tempPoint.y = Math.round(tempPoint.y);
					drawCircle(outputBitmapData, fill.color.getValueFromKey(key, Number), tempPoint.x, tempPoint.y);
				}
				return;
			}

			// prevent moveTo/lineTo from drawing a filled polygon if the shape type is line
			if (geomType == GeometryType.LINE)
				outputGraphics.endFill();

			var numPoints:int = points.length;
