 				return unprojectedColumn;
 			
 			// check the cache
-			var srsCache:Object = cache[unprojectedColumn] as Object;
+			var srsCache:Object = _reprojectedColumnCache[unprojectedColumn] as Object;
 			if (srsCache == null)
 			{
 				srsCache = new Object(); // destinationSRS -> ProxyColumn
-				cache[unprojectedColumn] = srsCache;
+				_reprojectedColumnCache[unprojectedColumn] = srsCache;
 			}
 			var proxyColumn:ProxyColumn = srsCache[destinationProjectionSRS] as ProxyColumn;
 

		 * @return An IProjector object that reprojects from sourceSRS to destinationSRS.
		 */
		public function getProjector(sourceSRS:String, destinationSRS:String):IProjector
		{
			var source:ProjProjection = getProjection(sourceSRS);
			var dest:ProjProjection = getProjection(destinationSRS);
			return new Projector(source, dest);
		}

		/**

			
			srsCode = srsCode.toUpperCase();
			
			if (_srsToProjMap.hasOwnProperty(srsCode))
				return _srsToProjMap[srsCode];
			
			if (projectionExists(srsCode))
				return _srsToProjMap[srsCode] = new ProjProjection(srsCode);
			
			return null;
		}
		
		/**
		 * This maps a pair of SRS codes separated by a semicolon to a Projector object.
		 */
		private const _projectorCache:Object = {};

		/**
		 * This maps an SRS Code to a cached ProjProjection object for that code.
		 */
		private const _srsToProjMap:Object = {};
		
		/**
		 * This is a temporary object used for single point transformations.
		 */
		private const _tempProjPoint:ProjPoint = new ProjPoint();
		
		/**
		 * This is a temporary object used only in transformBounds.
		 */
		private const _tempPoint:Point = new Point();
