/** * Add widget map * * @param array $args Args. * @return string Output. */ function add_widget_map($args = null) { global $wpgeo, $post; $wp_geo_options = get_option('wp_geo_options'); $current_post = $post->ID; $html_js = ''; $markers_js = ''; $polyline_js = ''; $markers_js_3 = ''; $polyline_js_3 = ''; $args = wp_parse_args($args, array('width' => '100%', 'height' => 150, 'maptype' => empty($wp_geo_options['google_map_type']) ? 'G_NORMAL_MAP' : $wp_geo_options['google_map_type'], 'show_polylines' => false, 'zoom' => $wp_geo_options['default_map_zoom'], 'id' => 'widget_map', 'posts' => null)); if (!$args['posts']) { return $html_js; } // Create Map $map = new WPGeo_Map($args['id']); $map->set_size($args['width'], $args['height']); $map->set_map_centre(new WPGeo_Coord(0, 0)); $map->set_map_zoom($args['zoom']); $map->set_map_type($args['maptype']); // If Google API Key... if ($wpgeo->checkGoogleAPIKey()) { // Add points (from posts) to map $count = 0; foreach ($args['posts'] as $geo_post) { $coord = get_wpgeo_post_coord($geo_post->ID); if ($coord->is_valid_coord()) { $count++; if (count($count) == 1) { $map->set_map_centre($coord); } $map->add_point($coord, array('icon' => apply_filters('wpgeo_marker_icon', 'small', $geo_post, 'widget'), 'title' => get_wpgeo_title($geo_post->ID), 'link' => apply_filters('wpgeo_marker_link', get_permalink($geo_post), $geo_post), 'post' => $geo_post)); } } // Only show map widget if there are coords to show if (count($map->points) > 0) { // Add polylines (to connect points) to map if ($args['show_polylines']) { $polyline = new WPGeo_Polyline(array('color' => $wp_geo_options['polyline_colour'])); foreach ($map->points as $point) { $polyline->add_coord($point->get_coord()); } $map->add_polyline($polyline); } $html_js .= $map->get_map_html(array('classes' => array('wp_geo_map'))); } $wpgeo->maps->add_map($map); return $html_js; } }
/** * Category Map * Outputs the HTML for a category map. * * @param array $args Arguments. */ function categoryMap($args = null) { global $post; $posts = array(); while (have_posts()) { the_post(); $posts[] = $post; } rewind_posts(); $wp_geo_options = get_option('wp_geo_options'); $showmap = false; // Extract args $allowed_args = array('width' => $wp_geo_options['default_map_width'], 'height' => $wp_geo_options['default_map_height']); $args = wp_parse_args($args, $allowed_args); for ($i = 0; $i < count($posts); $i++) { $post = $posts[$i]; $coord = get_wpgeo_post_coord($post->ID); if ($coord->is_valid_coord()) { $showmap = true; } } if ($showmap && !is_feed() && $this->checkGoogleAPIKey()) { $map = new WPGeo_Map('visible'); echo $map->get_map_html(array('classes' => array('wp_geo_map'), 'styles' => array('width' => $args['width'], 'height' => $args['height']))); } }