private int getColor(int value) {
		if (value == 0) {
			return 0;
		}

		double scale = Math.log10(value) / Math.log10(this.topValue);
		double lengthScale = Math.min(1.0, scale) * (colors.length - 1);
		int index = 1 + (int) lengthScale;
		if (index == colors.length) {
			index--;
		}
		double partScale = lengthScale - (index - 1);

		int r = (int) (colors[index - 1][0] + partScale
				* (colors[index][0] - colors[index - 1][0]));
		int g = (int) (colors[index - 1][1] + partScale
				* (colors[index][1] - colors[index - 1][1]));
		int b = (int) (colors[index - 1][2] + partScale
				* (colors[index][2] - colors[index - 1][2]));

		r = Math.min(255, r);
		b = Math.min(255, b);
		g = Math.min(255, g);
		return (r << 16) | (g << 8) | b;
	}
private int getColor ( int value ) { if ( value == 0 ) { return 0 ; } double scale = Math . log10 ( value ) / Math . log10 ( this . topValue ) ; double lengthScale = Math . min ( 1.0 , scale ) * ( colors . length - 1 ) ; int index = 1 + ( int ) lengthScale ; if ( index == colors . length ) { index -- ; } double partScale = lengthScale - ( index - 1 ) ; int r = ( int ) ( colors [ index - 1 ] [ 0 ] + partScale * ( colors [ index ] [ 0 ] - colors [ index - 1 ] [ 0 ] ) ) ; int g = ( int ) ( colors [ index - 1 ] [ 1 ] + partScale * ( colors [ index ] [ 1 ] - colors [ index - 1 ] [ 1 ] ) ) ; int b = ( int ) ( colors [ index - 1 ] [ 2 ] + partScale * ( colors [ index ] [ 2 ] - colors [ index - 1 ] [ 2 ] ) ) ; r = Math . min ( 255 , r ) ; b = Math . min ( 255 , b ) ; g = Math . min ( 255 , g ) ; return ( r << 16 ) | ( g << 8 ) | b ; }
Returns a color for a given absolute number that is to be shown on the
map.

@param value
@return