updates from dev.openstreetmap.de

git-svn-id: http://svn.code.sf.net/p/staticmaplite/code@14 3c7674d3-d6c2-4d0e-87b7-95661b9333b9
This commit is contained in:
rac98 2010-01-13 11:40:27 +00:00
parent 76bf58eacf
commit 81aa4c8b7e

View File

@ -36,7 +36,10 @@ Class staticMapLite {
protected $tileSize = 256; protected $tileSize = 256;
protected $tileSrcUrl = array( 'mapnik' => 'http://tile.openstreetmap.org/{Z}/{X}/{Y}.png', protected $tileSrcUrl = array( 'mapnik' => 'http://tile.openstreetmap.org/{Z}/{X}/{Y}.png',
'osmarenderer' => 'http://c.tah.openstreetmap.org/Tiles/tile/{Z}/{X}/{Y}.png', 'osmarenderer' => 'http://c.tah.openstreetmap.org/Tiles/tile/{Z}/{X}/{Y}.png',
'cycle' => 'http://c.andy.sandbox.cloudmade.com/tiles/cycle/{Z}/{X}/{Y}.png' 'cycle' => 'http://c.andy.sandbox.cloudmade.com/tiles/cycle/{Z}/{X}/{Y}.png',
'piste' => 'http://openpistemap.org/tiles/contours/{Z}/{X}/{Y}.png',
'topo' => 'http://topo.geofabrik.de/trails/{Z}/{X}/{Y}.png'
); );
protected $tileDefaultSrc = 'mapnik'; protected $tileDefaultSrc = 'mapnik';
@ -158,7 +161,14 @@ Class staticMapLite {
for($x=$startX; $x<=$endX; $x++){ for($x=$startX; $x<=$endX; $x++){
for($y=$startY; $y<=$endY; $y++){ for($y=$startY; $y<=$endY; $y++){
$url = str_replace(array('{Z}','{X}','{Y}'),array($this->zoom, $x, $y), $this->tileSrcUrl[$this->maptype]); $url = str_replace(array('{Z}','{X}','{Y}'),array($this->zoom, $x, $y), $this->tileSrcUrl[$this->maptype]);
$tileImage = imagecreatefromstring($this->fetchTile($url)); $tileData = $this->fetchTile($url);
if($tileData){
$tileImage = imagecreatefromstring($tileData);
} else {
$tileImage = imagecreate($this->tileSize,$this->tileSize);
$color = imagecolorallocate($tileImage, 255, 255, 255);
@imagestring($tileImage,1,127,127,'err',$color);
}
$destX = ($x-$startX)*$this->tileSize+$this->offsetX; $destX = ($x-$startX)*$this->tileSize+$this->offsetX;
$destY = ($y-$startY)*$this->tileSize+$this->offsetY; $destY = ($y-$startY)*$this->tileSize+$this->offsetY;
imagecopy($this->image, $tileImage, $destX, $destY, 0, 0, $this->tileSize, $this->tileSize); imagecopy($this->image, $tileImage, $destX, $destY, 0, 0, $this->tileSize, $this->tileSize);
@ -255,7 +265,7 @@ Class staticMapLite {
public function mapCacheIDToFilename(){ public function mapCacheIDToFilename(){
if(!$this->mapCacheFile){ if(!$this->mapCacheFile){
$this->mapCacheFile = $this->mapCacheBaseDir."/".substr($this->mapCacheID,0,2)."/".substr($this->mapCacheID,2,2)."/".substr($this->mapCacheID,4); $this->mapCacheFile = $this->mapCacheBaseDir."/".$this->maptype."/".$this->zoom."/cache_".substr($this->mapCacheID,0,2)."/".substr($this->mapCacheID,2,2)."/".substr($this->mapCacheID,4);
} }
return $this->mapCacheFile.".".$this->mapCacheExtension; return $this->mapCacheFile.".".$this->mapCacheExtension;
} }
@ -280,7 +290,7 @@ Class staticMapLite {
curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_URL, $url);
$tile = curl_exec($ch); $tile = curl_exec($ch);
curl_close($ch); curl_close($ch);
if($this->useTileCache){ if($tile && $this->useTileCache){
$this->writeTileToCache($url,$tile); $this->writeTileToCache($url,$tile);
} }
return $tile; return $tile;