You are here

function gmap_tracks_gmap in GMap Addons 7

Same name and namespace in other branches
  1. 5 gmap_tracks/gmap_tracks.module \gmap_tracks_gmap()
  2. 6 gmap_tracks/gmap_tracks.module \gmap_tracks_gmap()

Implementation of hook_gmap().

File

gmap_tracks/gmap_tracks.module, line 11
Track overlays for GMap.

Code

function gmap_tracks_gmap($op, &$map = NULL) {
  switch ($op) {
    case 'macro_multiple':
      return array(
        'track',
      );
    case 'parse_macro':
      if (isset($map['track']) && is_array($map['track'])) {
        foreach ($map['track'] as $track) {
          $t = array();
          $cp = strpos($track, ':');
          if ($cp != false) {
            $stylestr = substr($track, 0, $cp);
            $t['style'] = _gmap_parse_style($stylestr);
            $t['filename'] = substr($track, $cp + 1);
            $map['tracks'][] = $t;
          }
        }
      }
      unset($map['track']);
      break;
    case 'pre_theme_map':
      if (!empty($map['tracks'])) {

        // Ensure the shapeloader is loaded.
        drupal_add_js(drupal_get_path('module', 'gmap') . '/js/shapeloader_static.js');
        drupal_add_js(drupal_get_path('module', 'gmap') . '/js/gmap_shapes.js');

        // Convert tracks to shapes.
        foreach ($map['tracks'] as $track) {
          $s = array(
            'type' => 'line',
          );
          $s['style'] = $track['style'];
          $s['points'] = _gmap_tracks_parse($track['filename']);
          $map['shapes'][] = $s;
        }
        unset($map['tracks']);
      }
      break;
  }
}