loadFromId($_GET['id']);
if ($ok && $image->moderation_status=='rejected') {
header("HTTP/1.0 410 Gone");
header("Status: 410 Gone");
} elseif ($ok) {
if ((strpos($_SERVER["REQUEST_URI"],'/photo/') === FALSE && isset($_GET['id'])) || strlen($_GET['id']) !== strlen(intval($_GET['id']))) {
//keep urls nice and clean - esp. for search engines!
header("HTTP/1.0 301 Moved Permanently");
header("Status: 301 Moved Permanently");
header("Location: /photo/".intval($_GET['id']).".kml");
print "View file";
exit;
}
$version42plus = false;
if ($_GET['new']) {
$version42plus = true;
}
//if (check version) {
// $version42plus = true;
//}
//when this image was modified
$mtime = strtotime($image->upd_timestamp);
customCacheControl($mtime,$image->gridimage_id.'|'.$version42plus);
customExpiresHeader(3600*24*48,true);
require_once('geograph/conversions.class.php');
$conv = new Conversions;
//because we not loading from the search cache need to recalculate this
list($image->wgs84_lat,$image->wgs84_long) = $conv->gridsquare_to_wgs84($image->grid_square);
$kml = new kmlFile();
$kml->atom = true;
$stylefile = "http://{$CONF['KML_HOST']}/kml/style.kmz";
$kml->filename = "Geograph".$image->gridimage_id.".kml";
$point = new kmlPoint($image->wgs84_lat,$image->wgs84_long);
$placemark = $kml->addChild(new kmlPlacemark_Photo('id'.$image->gridimage_id,$image->grid_reference." : ".$image->title,$point));
$placemark->useHoverStyle();
$placemark->useCredit($image->realname,"http://{$_SERVER['HTTP_HOST']}/photo/".$image->gridimage_id);
$linkTag = "gridimage_id."\">";
$details = $image->getThumbnail(120,120,2);
$thumb = $details['server'].$details['url'];
$thumbTag = $details['html'];
$description = $linkTag.$thumbTag."
".GeographLinks($image->comment)." (".$linkTag."view full size)"."
© Copyright profile_link."\">".$image->realname." and licensed for reuse under this Creative Commons Licence
";
$placemark->setItemCDATA('description',$description);
//yes that is uppercase S!
$placemark->setItemCDATA('Snippet',strip_tags($description));
$placemark->setItem('visibility',1);
$placemark->useImageAsIcon($thumb);
if (!empty($image->imagetaken) && strpos($image->imagetaken,'-00') === FALSE) {
$placemark->setTimeStamp(str_replace('-00','',$image->imagetaken));
}
$different_square_true = (intval($image->nateastings/1000) != intval($image->viewpoint_eastings/1000)
|| intval($image->natnorthings/1000) != intval($image->viewpoint_northings/1000));
$show_viewpoint = (intval($image->viewpoint_grlen) > 4) || ($different_square_true && ($image->viewpoint_grlen == '4'));
if ($image->viewpoint_eastings && $show_viewpoint) {
list($line['eLat'],$line['eLong']) = $conv->national_to_wgs84($image->viewpoint_eastings,$image->viewpoint_northings,$image->grid_square->reference_index);
$point2 = new kmlPoint($line['eLat'],$line['eLong']);
if ($version42plus) {
$placemark->addPhotographerPhoto($point2,$image->view_direction,$image->realname,$image->_getFullpath(true,true));
} else {
$placemark->addPhotographerPoint($point2,$image->view_direction,$image->realname);
}
} elseif (isset($image->view_direction) && strlen($image->view_direction) && $image->view_direction != -1) {
$placemark->addViewDirection($image->view_direction);
}
$kml->outputKML();
} else {
header("HTTP/1.0 404 Not Found");
header("Status: 404 Not Found");
}
exit;
}
init_session();
$smarty = new GeographPage;
$template='kml.tpl';
$cacheid = '';
if (isset($_REQUEST['i']) && $i = intval($_REQUEST['i'])) {
$pg = $_REQUEST['page'];
if ($pg == '' or $pg < 1) {$pg = 1;}
if ($i < 1) {
if ($USER->registered) {
$data = array();
$data['user_id'] = $USER->user_id;
$data['orderby'] = 'gridimage_id';
$data['reverse_order_ind'] = 1;
$sortorders = array('gridimage_id'=>'Date Submitted');
$data['adminoverride'] = 0; //prevent overriding it
$engine = new SearchEngineBuilder('#');
$i = $engine->buildAdvancedQuery($data,false);
} else {
$i = 1522;
}
}
$engine = new SearchEngine($i);
if (isset($_REQUEST['submit'])) {
$simple = $_REQUEST['simple'];
if (isset($_REQUEST['type']) && $_REQUEST['type'] == 'view') {
$url = "http://{$_SERVER['HTTP_HOST']}/earth.php?i=$i&simple=$simple";
} elseif (isset($_REQUEST['type']) && $_REQUEST['type'] == 'mapsview') {
$url = "http://{$_SERVER['HTTP_HOST']}/feed/results/$i.nl";
$_REQUEST['type'] = 'maps';
} else {
$url = "http://{$_SERVER['HTTP_HOST']}/feed/results/$i/$pg.kml";
}
if (isset($_REQUEST['type']) && $_REQUEST['type'] == 'static') {
header("Status:302 Found");
header("Location:$url");
$url = str_replace('&','&',$url);
print "Open KML";
exit;
} elseif (isset($_REQUEST['type']) && $_REQUEST['type'] == 'live') {
header("Status:302 Found");
$url = "http://maps.live.com/default.aspx?v=2&mapurl=$url"; //no need to urlencode as we using rest style url
header("Location:$url");
print "Open 'Maps Live'";
exit;
} elseif (isset($_REQUEST['type']) && $_REQUEST['type'] == 'maps') {
header("Status:302 Found");
$url = "http://maps.google.co.uk/maps?q=$url"; //no need to urlencode as we using rest style url
header("Location:$url");
print "Open Google Maps";
exit;
} else {
customExpiresHeader(3600*24*14,true);
$kml = new kmlFile();
$kml->filename = "Geograph.kml";
$NetworkLink = $kml->addChild('NetworkLink');
$NetworkLink->setItem('name','Geograph NetworkLink');
$NetworkLink->setItemCDATA('description',"Images{$engine->criteria->searchdesc}");
$NetworkLink->setItem('open',0);
$UrlTag = $NetworkLink->useUrl($url);
$NetworkLink->setItem('visibility',0);
if ($_REQUEST['type'] == 'time') {
$UrlTag->setItem('refreshMode','onInterval');
$UrlTag->setItem('refreshInterval',intval($_REQUEST['refresh']));
} else {
$UrlTag->setItem('viewRefreshMode','onStop');
$UrlTag->setItem('viewRefreshTime',4);
$UrlTag->setItem('viewFormat','BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]&LOOKAT=[lookatLon],[lookatLat],[lookatRange],[lookatTilt],[lookatHeading],[horizFov],[vertFov]');
}
$kml->outputKML();
exit;
}
} else {
$engine->countOnly = true;
$smarty->assign('querytime', $engine->Execute($pg));
$smarty->assign('i', $i);
$smarty->assign('currentPage', $pg);
$smarty->assign_by_ref('engine', $engine);
}
} else {
$is = array(1522=>'Recent Submissions',
46131 => 'Selection of Photos across the British Isles',
-1 => 'Your Pictures',
25680 => 'one random image from each myriad, in Great Britain',
25681 => 'one random image from each myriad, in Ireland',
25677 => 'one random image from every user',
25678 => 'one random image from each category',
46002 => 'Random Images',
44622 => 'Moderated in the last 24 Hours',
);
$smarty->assign_by_ref('is', $is);
$smarty->assign('currentPage', 1);
$db=NewADOConnection($GLOBALS['DSN']);
$updatetime = $db->getOne("select avg(unix_timestamp(ts))-stddev(unix_timestamp(ts)) from kmlcache where rendered = 1");
$smarty->assign('superlayer_updated', strftime("%A, %d %b at %H:%M",intval($updatetime)));
$smarty->assign('coverage_updated', strftime("%A, %d %b at %H:%M",@filemtime("kml/hectads-points.kmz")));
}
$smarty->assign('adv', $_GET['adv']);
$smarty->display($template, $cacheid);
?>