You are here

function theme_location_cck_field_map in Location 7.4

Same name and namespace in other branches
  1. 6.3 contrib/location_cck/location_cck.module \theme_location_cck_field_map()
  2. 7.5 contrib/location_cck/location_cck.module \theme_location_cck_field_map()
  3. 7.3 contrib/location_cck/location_cck.module \theme_location_cck_field_map()

Generate a GMap map for one or more location field values.

Mostly just cut and paste from gmap_location block view.

3 calls to theme_location_cck_field_map()
theme_location_cck_formatter_all in contrib/location_cck/location_cck.module
Return both an address and a map for an individual item.
theme_location_cck_formatter_combined in contrib/location_cck/location_cck.module
Alternate function to return a map with all multiple values in the same map.
theme_location_cck_formatter_map in contrib/location_cck/location_cck.module
Returns a map for an individual field value.

File

contrib/location_cck/location_cck.module, line 430
Defines location field type.

Code

function theme_location_cck_field_map($locations, $field) {
  $count = 0;
  $content = '';
  foreach ($locations as $location) {
    if (location_has_coordinates($location)) {
      $count++;
      $markername = isset($field['gmap_marker']) ? $field['gmap_marker'] : 'drupal';
      $markers[] = array(
        'latitude' => $location['latitude'],
        'longitude' => $location['longitude'],
        'markername' => $markername,
        'offset' => $count - 1,
        'text' => theme('location_cck_field_popup', array(
          'location' => $location,
          'field' => $field,
        )),
      );
    }
  }
  if (!empty($markers)) {
    $macro = !empty($field['gmap_macro']) ? $field['gmap_macro'] : '[gmap ]';
    $map = gmap_parse_macro($macro);
    $map['latitude'] = $markers[0]['latitude'];
    $map['longitude'] = $markers[0]['longitude'];
    $map['markers'] = $markers;
    $map['id'] = gmap_get_auto_mapid();
    $content = theme('gmap', array(
      '#settings' => $map,
    ));
  }
  return $content;
}