GoogleChartCandlestickMarker.php
8 years ago
GoogleChartLineMarker.php
8 years ago
GoogleChartRangeMarker.php
8 years ago
GoogleChartShapeMarker.php
8 years ago
GoogleChartTextMarker.php
8 years ago
GoogleChartLineMarker.php
102 lines
| 1 | <?php |
| 2 | |
| 3 | /** @file |
| 4 | * This file is part of Google Chart PHP library. |
| 5 | * |
| 6 | * Copyright (c) 2010 Rémi Lanvin <remi@cloudconnected.fr> |
| 7 | * |
| 8 | * Licensed under the MIT license. |
| 9 | * |
| 10 | * For the full copyright and license information, please view the LICENSE file. |
| 11 | */ |
| 12 | |
| 13 | require_once dirname(__FILE__).'/../GoogleChartMarker.php'; |
| 14 | |
| 15 | /** |
| 16 | * A Line marker. |
| 17 | * |
| 18 | * This class implement Line Markers feature (@c chm=D). |
| 19 | * |
| 20 | * @par Example |
| 21 | * @include marker_line.php |
| 22 | * |
| 23 | * @see GoogleChartMarker |
| 24 | * @see http://code.google.com/apis/chart/docs/chart_params.html#gcharts_line_markers |
| 25 | */ |
| 26 | class GoogleChartLineMarker extends GoogleChartMarker |
| 27 | { |
| 28 | /** |
| 29 | * @var string size parameter. |
| 30 | */ |
| 31 | protected $size = '2'; |
| 32 | |
| 33 | /** |
| 34 | * @var array which_points parameter. |
| 35 | */ |
| 36 | protected $points = null; |
| 37 | |
| 38 | /** |
| 39 | * Set the size of the line. |
| 40 | * |
| 41 | * @param $size (int) |
| 42 | * @return $this |
| 43 | */ |
| 44 | public function setSize($size) |
| 45 | { |
| 46 | $this->size = $size; |
| 47 | return $this; |
| 48 | } |
| 49 | |
| 50 | /** |
| 51 | * Set which points in the serie are used to draw the line. |
| 52 | * |
| 53 | * @param $start (int) (optional) at which point start |
| 54 | * @param $stop (int) (optional) at which point stop |
| 55 | * @return $this |
| 56 | */ |
| 57 | public function setPoints($start = null, $stop = null) |
| 58 | { |
| 59 | if ( $start === null && $stop === null ) { |
| 60 | $this->points = null; |
| 61 | } |
| 62 | else { |
| 63 | $this->points = array( |
| 64 | 'start' => $start, |
| 65 | 'stop' => $stop |
| 66 | ); |
| 67 | } |
| 68 | return $this; |
| 69 | } |
| 70 | |
| 71 | /** |
| 72 | * Compute the parameter value. |
| 73 | * |
| 74 | * @note For internal use only. |
| 75 | * @param $index (int) index of the data serie. |
| 76 | * @return string |
| 77 | */ |
| 78 | public function compute($index, $chart_type = null) |
| 79 | { |
| 80 | if ( $index === null ) |
| 81 | throw new LogicException('Line marker requires one data serie.'); |
| 82 | |
| 83 | $points = 0; |
| 84 | if ( is_array($this->points) ) { |
| 85 | $points = $this->points['start'].':'.$this->points['stop']; |
| 86 | } |
| 87 | |
| 88 | $str = sprintf( |
| 89 | 'D,%s,%d,%s,%d', |
| 90 | $this->color, |
| 91 | $index, |
| 92 | $points, |
| 93 | $this->size |
| 94 | ); |
| 95 | |
| 96 | if ( $this->z_order !== null ) |
| 97 | $str .= ','.$this->z_order; |
| 98 | |
| 99 | return $str; |
| 100 | } |
| 101 | } |
| 102 |