Add some TileResolvers.
This commit is contained in:
parent
11e15874df
commit
8504b38d5c
@ -2,11 +2,15 @@
|
|||||||
|
|
||||||
namespace StaticMapLite;
|
namespace StaticMapLite;
|
||||||
|
|
||||||
|
use StaticMapLite\TileResolver\TileResolver;
|
||||||
|
|
||||||
class Printer
|
class Printer
|
||||||
{
|
{
|
||||||
protected $maxWidth = 1024;
|
protected $maxWidth = 1024;
|
||||||
protected $maxHeight = 1024;
|
protected $maxHeight = 1024;
|
||||||
|
|
||||||
|
protected $tileResolver = null;
|
||||||
|
|
||||||
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://otile1.mqcdn.com/tiles/1.0.0/osm/{Z}/{X}/{Y}.png',
|
'osmarenderer' => 'http://otile1.mqcdn.com/tiles/1.0.0/osm/{Z}/{X}/{Y}.png',
|
||||||
@ -73,6 +77,8 @@ class Printer
|
|||||||
$this->width = 500;
|
$this->width = 500;
|
||||||
$this->height = 350;
|
$this->height = 350;
|
||||||
$this->maptype = $this->tileDefaultSrc;
|
$this->maptype = $this->tileDefaultSrc;
|
||||||
|
|
||||||
|
$this->tileResolver = new TileResolver();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addMarker(string $markerType, float $latitude, float $longitude): Printer
|
public function addMarker(string $markerType, float $latitude, float $longitude): Printer
|
||||||
@ -339,18 +345,7 @@ class Printer
|
|||||||
|
|
||||||
public function fetchTile($url)
|
public function fetchTile($url)
|
||||||
{
|
{
|
||||||
if ($this->useTileCache && ($cached = $this->checkTileCache($url))) return $cached;
|
return $this->tileResolver->fetch($url);
|
||||||
$ch = curl_init();
|
|
||||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
|
||||||
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0");
|
|
||||||
curl_setopt($ch, CURLOPT_URL, $url);
|
|
||||||
$tile = curl_exec($ch);
|
|
||||||
curl_close($ch);
|
|
||||||
if ($tile && $this->useTileCache) {
|
|
||||||
$this->writeTileToCache($url, $tile);
|
|
||||||
}
|
|
||||||
return $tile;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function copyrightNotice()
|
public function copyrightNotice()
|
||||||
|
25
src/TileResolver/CachedTileResolver.php
Normal file
25
src/TileResolver/CachedTileResolver.php
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace StaticMapLite\TileResolver;
|
||||||
|
|
||||||
|
class CachedTileResolver extends TileResolver
|
||||||
|
{
|
||||||
|
public function fetch(string $url): string
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
if ($this->useTileCache && ($cached = $this->checkTileCache($url))) return $cached;
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0");
|
||||||
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
$tile = curl_exec($ch);
|
||||||
|
curl_close($ch);
|
||||||
|
if ($tile && $this->useTileCache) {
|
||||||
|
$this->writeTileToCache($url, $tile);
|
||||||
|
}
|
||||||
|
return $tile;
|
||||||
|
*/
|
||||||
|
|
||||||
|
throw new \Exception('Not implemented');
|
||||||
|
}
|
||||||
|
}
|
19
src/TileResolver/TileResolver.php
Normal file
19
src/TileResolver/TileResolver.php
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace StaticMapLite\TileResolver;
|
||||||
|
|
||||||
|
|
||||||
|
class TileResolver
|
||||||
|
{
|
||||||
|
public function fetch(string $url): string
|
||||||
|
{
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0');
|
||||||
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
$tile = curl_exec($ch);
|
||||||
|
curl_close($ch);
|
||||||
|
|
||||||
|
return $tile;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user