Example #1
0
 /**
  * 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;
     }
 }
Example #2
0
 /**
  * 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'])));
     }
 }