html/scripts/highchart/highcharts-more.src.js
function () {
		
		var series = this,
			yAxis = series.yAxis,
			options = series.options,
			center = yAxis.center;
			
		series.generatePoints();
		
		each(series.points, function (point) {
			
			var dialOptions = merge(options.dial, point.dial),
				radius = (pInt(pick(dialOptions.radius, 80)) * center[2]) / 200,
				baseLength = (pInt(pick(dialOptions.baseLength, 70)) * radius) / 100,
				rearLength = (pInt(pick(dialOptions.rearLength, 10)) * radius) / 100,
				baseWidth = dialOptions.baseWidth || 3,
				topWidth = dialOptions.topWidth || 1,
				overshoot = options.overshoot,
				rotation = yAxis.startAngleRad + yAxis.translate(point.y, null, null, null, true);

			// Handle the wrap and overshoot options
			if (overshoot && typeof overshoot === 'number') {
				overshoot = overshoot / 180 * Math.PI;
				rotation = Math.max(yAxis.startAngleRad - overshoot, Math.min(yAxis.endAngleRad + overshoot, rotation));			
			
			} else if (options.wrap === false) {
				rotation = Math.max(yAxis.startAngleRad, Math.min(yAxis.endAngleRad, rotation));
			}

			rotation = rotation * 180 / Math.PI;
				
			point.shapeType = 'path';
			point.shapeArgs = {
				d: dialOptions.path || [
					'M', 
					-rearLength, -baseWidth / 2, 
					'L', 
					baseLength, -baseWidth / 2,
					radius, -topWidth / 2,
					radius, topWidth / 2,
					baseLength, baseWidth / 2,
					-rearLength, baseWidth / 2,
					'z'
				],
				translateX: center[0],
				translateY: center[1],
				rotation: rotation
			};
			
			// Positions for data label
			point.plotX = center[0];
			point.plotY = center[1];
		});
	}
function () {
		
		var series = this,
			yAxis = series.yAxis,
			options = series.options,
			center = yAxis.center;
			
		series.generatePoints();
		
		each(series.points, function (point) {
			
			var dialOptions = merge(options.dial, point.dial),
				radius = (pInt(pick(dialOptions.radius, 80)) * center[2]) / 200,
				baseLength = (pInt(pick(dialOptions.baseLength, 70)) * radius) / 100,
				rearLength = (pInt(pick(dialOptions.rearLength, 10)) * radius) / 100,
				baseWidth = dialOptions.baseWidth || 3,
				topWidth = dialOptions.topWidth || 1,
				overshoot = options.overshoot,
				rotation = yAxis.startAngleRad + yAxis.translate(point.y, null, null, null, true);

			// Handle the wrap and overshoot options
			if (overshoot && typeof overshoot === 'number') {
				overshoot = overshoot / 180 * Math.PI;
				rotation = Math.max(yAxis.startAngleRad - overshoot, Math.min(yAxis.endAngleRad + overshoot, rotation));			
			
			} else if (options.wrap === false) {
				rotation = Math.max(yAxis.startAngleRad, Math.min(yAxis.endAngleRad, rotation));
			}

			rotation = rotation * 180 / Math.PI;
				
			point.shapeType = 'path';
			point.shapeArgs = {
				d: dialOptions.path || [
					'M', 
					-rearLength, -baseWidth / 2, 
					'L', 
					baseLength, -baseWidth / 2,
					radius, -topWidth / 2,
					radius, topWidth / 2,
					baseLength, baseWidth / 2,
					-rearLength, baseWidth / 2,
					'z'
				],
				translateX: center[0],
				translateY: center[1],
				rotation: rotation
			};
			
			// Positions for data label
			point.plotX = center[0];
			point.plotY = center[1];
		});
	}
function ( ) { var series = this , yAxis = series . yAxis , options = series . options , center = yAxis . center ; series . generatePoints ( ) ; each ( series . points , function ( point ) { var dialOptions = merge ( options . dial , point . dial ) , radius = ( pInt ( pick ( dialOptions . radius , 80 ) ) * center [ 2 ] ) / 200 , baseLength = ( pInt ( pick ( dialOptions . baseLength , 70 ) ) * radius ) / 100 , rearLength = ( pInt ( pick ( dialOptions . rearLength , 10 ) ) * radius ) / 100 , baseWidth = dialOptions . baseWidth || 3 , topWidth = dialOptions . topWidth || 1 , overshoot = options . overshoot , rotation = yAxis . startAngleRad + yAxis . translate ( point . y , null , null , null , true ) ; // Handle the wrap and overshoot options if ( overshoot && typeof overshoot === 'number' ) { overshoot = overshoot / 180 * Math . PI ; rotation = Math . max ( yAxis . startAngleRad - overshoot , Math . min ( yAxis . endAngleRad + overshoot , rotation ) ) ; } else if ( options . wrap === false ) { rotation = Math . max ( yAxis . startAngleRad , Math . min ( yAxis . endAngleRad , rotation ) ) ; } rotation = rotation * 180 / Math . PI ; point . shapeType = 'path' ; point . shapeArgs = { d : dialOptions . path || [ 'M' , - rearLength , - baseWidth / 2 , 'L' , baseLength , - baseWidth / 2 , radius , - topWidth / 2 , radius , topWidth / 2 , baseLength , baseWidth / 2 , - rearLength , baseWidth / 2 , 'z' ] , translateX : center [ 0 ] , translateY : center [ 1 ] , rotation : rotation } ; // Positions for data label point . plotX = center [ 0 ] ; point . plotY = center [ 1 ] ; } ) ; }
Calculate paths etc
Calculate paths etc