/**
  * Get map object.
  * @param string $venue Venue
  * @param array $args Optional map overrides
  * @return object Map object
  */
 private function _get_venue_map($venue, $args = array())
 {
     $venue = $venue ? $venue : $this->get_venue();
     if (!class_exists('AgmMapModel')) {
         return $venue;
     }
     $map_id = $this->_get_venue_map_id($venue);
     if (!$map_id) {
         return $venue;
     }
     $model = new AgmMapModel();
     return $model->get_map($map_id);
 }
 function agm_google_maps_post_meta_address($location)
 {
     global $post;
     if (!$location && $post->post_type == 'incsub_event') {
         $meta = get_post_custom($post->ID);
         $venue = '';
         if (isset($meta["incsub_event_venue"]) && isset($meta["incsub_event_venue"][0])) {
             $venue = stripslashes($meta["incsub_event_venue"][0]);
             if (preg_match_all('/map id="([0-9]+)"/', $venue, $matches) > 0) {
                 if (isset($matches[1]) && isset($matches[1][0])) {
                     $model = new AgmMapModel();
                     $map = $model->get_map($matches[1][0]);
                     $venue = $map['markers'][0]['title'];
                     if ($meta["agm_map_created"][0] != $map['id']) {
                         update_post_meta($post->ID, 'agm_map_created', $map['id']);
                         return false;
                     }
                 }
             }
         }
         return $venue;
     }
     return $location;
 }
 private function _get_group_map($group_id, $data_overrides = array())
 {
     $data_overrides = wp_parse_args($data_overrides, array('show_members' => true));
     $data = groups_get_groupmeta($group_id, "agm-group_map");
     $model = new AgmMapModel();
     $map_id = get_option("_agm-group_map-for-{$group_id}", false);
     $address = !empty($data["address"]) ? $data["address"] : apply_filters('agm-group_map-default_group_address', false, $group_id, $data);
     $map = false;
     if ($map_id) {
         $map = $model->get_map($map_id);
     } else {
         if (!$map_id && $address) {
             $map_id = $model->autocreate_map(false, false, false, $address);
             if (!$map_id) {
                 return false;
             }
             update_option("_agm-group_map-for-{$group_id}", $map_id);
             $map = $model->get_map($map_id);
         } else {
             $map = $model->get_map_defaults();
             $map['defaults'] = $model->get_map_defaults();
             $map['id'] = $group_id . md5(time() . rand());
             $map['show_map'] = 1;
             $map['show_markers'] = 0;
             $map['markers'] = array();
         }
     }
     if (!empty($data_overrides['group_marker']) && 'avatar' == $data_overrides['group_marker'] && function_exists('bp_core_fetch_avatar')) {
         if (1 != count($map['markers'])) {
             continue;
         }
         if (empty($map['markers'][0])) {
             continue;
         }
         $avatar = bp_core_fetch_avatar(array('object' => 'group', 'item_id' => $group_id, 'width' => 32, 'height' => 32, 'html' => false));
         if (!empty($avatar)) {
             $map['markers'][0]['icon'] = $avatar;
         }
     }
     if (!empty($data['member_locations']) && !empty($data_overrides['show_members']) && class_exists('Agm_Bp_Pm_UserPages')) {
         $profile = new Agm_Bp_Pm_UserPages();
         $markers = $map['markers'];
         $members = groups_get_group_members($group_id);
         if ($members && !empty($members['members'])) {
             foreach ($members['members'] as $member) {
                 $marker = $profile->member_to_marker($member->ID);
                 if ($marker) {
                     $markers[] = $marker;
                 }
             }
         }
         $map['markers'] = $markers;
     }
     if (empty($map['markers'])) {
         return false;
     }
     return $map;
 }
 private function _get_map_sig($map_id)
 {
     $model = new AgmMapModel();
     $map = $model->get_map($map_id);
     return md5(serialize($map) . AUTH_SALT . NONCE_KEY);
 }