Exemplo n.º 1
0
 /**
  * get a url that will zoom us out one level from this gridsquare
  * @access public
  */
 function getGridSquareToken($gridsquare)
 {
     if (is_numeric($gridsquare)) {
         $id = $gridsquare;
         $gridsquare = new GridSquare();
         $gridsquare->loadFromId($id);
     }
     $out = new GeographMapMosaic();
     //start with same params
     $out->setScale(40);
     $out->setMosaicFactor(2);
     $out->setCentre($gridsquare->x, $gridsquare->y, true);
     //true to align to 10x10 map
     return $out->getToken();
 }
Exemplo n.º 2
0
$cacheid = 'maplarge|' . $token;
//regenerate?
if (!$smarty->is_cached($template, $cacheid)) {
    dieUnderHighLoad();
    //assign overview to smarty
    if ($mosaic->type_or_user > 0) {
        $overview->type_or_user = $mosaic->type_or_user;
        $profile = new GeographUser($mosaic->type_or_user);
        $smarty->assign('realname', $profile->realname);
        $smarty->assign('user_id', $mosaic->type_or_user);
    }
    if ($mosaic->pixels_per_km >= 40) {
        //largeoverview
        $overview->setScale(1);
        list($x, $y) = $mosaic->getCentre();
        $overview->setCentre($x, $y);
        //does call setAlignedOrigin
    }
    $overview->assignToSmarty($smarty, 'overview');
    $smarty->assign('marker', $overview->getBoundingBox($mosaic));
    //assign main map to smarty
    $mosaic->assignToSmarty($smarty, 'mosaic');
    //assign all the other useful stuff
    $gridref = $mosaic->getGridRef(-1, -1);
    $smarty->assign('gridref', $gridref);
    $smarty->assign('mapwidth', round($mosaic->image_w / $mosaic->pixels_per_km));
    preg_match("/([A-Z]+\\d)5(\\d)5\$/", $gridref, $matches);
    $smarty->assign('gridref2', $matches[1] . $matches[2]);
    if ($mosaic->pixels_per_km >= 40) {
        $left = $mosaic->map_x;
        $bottom = $mosaic->map_y;
Exemplo n.º 3
0
                $smarty->assign('map_token', $mosaic->getGridSquareToken($square));
            }
        }
    }
} else {
    //no square specifed - populate with remembered values
    $smarty->assign('gridsquare', $_SESSION['gridsquare']);
    $smarty->assign('eastings', $_SESSION['eastings']);
    $smarty->assign('northings', $_SESSION['northings']);
}
if (!isset($_GET['inner'])) {
    #//lets find some recent photos
    #new RecentImageList($smarty);
    //lets add an overview map too
    if ($grid_ok) {
        $overview = new GeographMapMosaic('largeoverview');
        $overview->setCentre($square->x, $square->y);
        //does call setAlignedOrigin
        $smarty->assign('marker', $overview->getSquarePoint($square));
        //TODO if centisquare is specified use that to plot a circle!
        //lets add an rastermap too
        $rastermap = new RasterMap($square, false, $square->natspecified);
        $rastermap->addLatLong($lat, $long);
        $smarty->assign_by_ref('rastermap', $rastermap);
    } else {
        $overview = new GeographMapMosaic('overview');
    }
    $overview->assignToSmarty($smarty, 'overview');
}
#}
$smarty->display($template, $cacheid);
Exemplo n.º 4
0
 function assignToSmarty($smarty)
 {
     global $CONF;
     $taken = $this->getFormattedTakenDate();
     //get the grid references
     $this->getSubjectGridref(true);
     $this->getPhotographerGridref(true);
     //remove grid reference from title
     $this->bigtitle = trim(preg_replace("/^{$this->grid_reference}/", '', $this->title));
     $this->bigtitle = preg_replace('/(?<![\\.])\\.$/', '', $this->bigtitle);
     $rid = $this->grid_square->reference_index;
     $gridrefpref = $CONF['gridrefname'][$rid];
     $smarty->assign('page_title', $this->bigtitle . ":: {$gridrefpref}{$this->grid_reference}");
     $smarty->assign('image_taken', $taken);
     $smarty->assign('ismoderator', $ismoderator);
     $smarty->assign_by_ref('image', $this);
     //get a token to show a suroudding geograph map
     $mosaic = new GeographMapMosaic();
     $smarty->assign('map_token', $mosaic->getGridSquareToken($this->grid_square));
     //find a possible place within 25km
     $place = $this->grid_square->findNearestPlace(75000);
     $smarty->assign_by_ref('place', $place);
     if (empty($this->comment)) {
         $smarty->assign('meta_description', "{$this->grid_reference} :: {$this->bigtitle}, " . strip_tags(smarty_function_place(array('place' => $place))));
     } else {
         $smarty->assign('meta_description', $this->comment);
     }
     if (!empty($CONF['forums'])) {
         //let's find posts in the gridref discussion forum
         $this->grid_square->assignDiscussionToSmarty($smarty);
     }
     //count the number of photos in this square
     $smarty->assign('square_count', $this->grid_square->imagecount);
     //lets add an overview map too
     $overview = new GeographMapMosaic('largeoverview');
     $overview->setCentre($this->grid_square->x, $this->grid_square->y);
     //does call setAlignedOrigin
     $overview->assignToSmarty($smarty, 'overview');
     $smarty->assign('marker', $overview->getSquarePoint($this->grid_square));
     require_once 'geograph/conversions.class.php';
     $conv = new Conversions();
     list($lat, $long) = $conv->gridsquare_to_wgs84($this->grid_square);
     $smarty->assign('lat', $lat);
     $smarty->assign('long', $long);
     list($latdm, $longdm) = $conv->wgs84_to_friendly($lat, $long);
     $smarty->assign('latdm', $latdm);
     $smarty->assign('longdm', $longdm);
     //lets add an rastermap too
     $rastermap = new RasterMap($this->grid_square, false);
     $rastermap->addLatLong($lat, $long);
     if (!empty($this->viewpoint_northings)) {
         $rastermap->addViewpoint($this->viewpoint_refindex, $this->viewpoint_eastings, $this->viewpoint_northings, $this->viewpoint_grlen, $this->view_direction);
     } elseif (isset($this->view_direction) && strlen($this->view_direction) && $this->view_direction != -1) {
         $rastermap->addViewDirection($this->view_direction);
     }
     $smarty->assign_by_ref('rastermap', $rastermap);
     $smarty->assign('x', $this->grid_square->x);
     $smarty->assign('y', $this->grid_square->y);
     if ($this->view_direction > -1) {
         $smarty->assign('view_direction', $this->view_direction % 90 == 0 ? strtoupper(heading_string($this->view_direction)) : ucwords(heading_string($this->view_direction)));
     }
     $level = $this->grid_square->imagecount > 1 ? 6 : 5;
     $smarty->assign('sitemap', getSitemapFilepath($level, $this->grid_square));
 }