class TestTemplateTileLayout(unittest.TestCase): def setUp(self): self.tilelayout = TemplateTileLayout('%(z)d/%(x)d/%(y)d') def test_filename(self): assert self.tilelayout.filename(TileCoord(1, 2, 3)) == '1/2/3' def test_tilecoord(self): assert self.tilelayout.tilecoord('1/2/3') == TileCoord(1, 2, 3)
class TestTemplateTileLayout(unittest.TestCase): def setUp(self) -> None: self.tilelayout = TemplateTileLayout("%(z)d/%(x)d/%(y)d") def test_filename(self) -> None: assert self.tilelayout.filename(TileCoord(1, 2, 3)) == "1/2/3" def test_tilecoord(self) -> None: assert self.tilelayout.tilecoord("1/2/3") == TileCoord(1, 2, 3)
class TestTemplateTileLayout(unittest.TestCase): def setUp(self): self.tilelayout = TemplateTileLayout('%(z)d/%(x)d/%(y)d') def test_filename(self): self.assertEqual(self.tilelayout.filename(TileCoord(1, 2, 3)), '1/2/3') def test_tilecoord(self): self.assertEqual(self.tilelayout.tilecoord('1/2/3'), TileCoord(1, 2, 3))
def setUp(self): self.tilelayout = TemplateTileLayout('%(z)d/%(x)d/%(y)d')
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( ( TemplateTileLayout("http://{0!s}.tile.stamen.com/toner/%(z)d/%(x)d/%(y)d.png".format(server)) for server in "abcd" ), attribution='Map tiles by <a href="http://stamen.com">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="http://openstreetmap.org">OpenStreetMap</a>, under <a href="http://creativecommons.org/licenses/by-sa/3.0">CC BY SA</a>.', content_type="image/png", )
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( (TemplateTileLayout( f"http://{server!s}.tile.stamen.com/terrain/%(z)d/%(x)d/%(y)d.jpg") for server in "abcd"), attribution= 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="http://openstreetmap.org">OpenStreetMap</a>, under <a href="http://creativecommons.org/licenses/by-sa/3.0">CC BY SA</a>.', content_type="image/jpg", )
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( (TemplateTileLayout( 'http://%s.tile.stamen.com/toner/%%(z)d/%%(x)d/%%(y)d.png' % server) for server in 'abcd'), attribution= 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="http://openstreetmap.org">OpenStreetMap</a>, under <a href="http://creativecommons.org/licenses/by-sa/3.0">CC BY SA</a>.', content_type='image/png')
from six.moves import xrange from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( (TemplateTileLayout( 'http://otile%d.mqcdn.com/tiles/1.0.0/osm/%%(z)d/%%(x)d/%%(y)d.png' % i) for i in xrange(1, 5)), attribution= 'Data, imagery and map information provided by MapQuest, <a href="http://www.openstreetmap.org/">Open Street Map</a> and contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>.', content_type='image/png')
def load(name): # pragma: no cover """ Construct a :class:`TileStore` from a name. :param name: Name :type name: string :rtype: :class:`TileStore` The following shortcuts are available: bounds://<bounding-pyramid> file://<template> http://<template> and https://<template> memcached://<server>:<port>/<template> s3://<bucket>/<template> sqs://<region>/<queue> <filename>.bsddb <filename>.mbtiles <filename>.zip <module> """ if name == "null://": from tilecloud.store.null import NullTileStore return NullTileStore() if name.startswith("bounds://"): from tilecloud.store.boundingpyramid import BoundingPyramidTileStore return BoundingPyramidTileStore( BoundingPyramid.from_string(name[9:])) if name.startswith("file://"): from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.filesystem import FilesystemTileStore return FilesystemTileStore(TemplateTileLayout(name[7:]), ) if name.startswith("http://") or name.startswith("https://"): from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore return URLTileStore((TemplateTileLayout(name), )) if name.startswith("memcached://"): from tilecloud.layout.template import TemplateTileLayout from tilecloud.lib.memcached import MemcachedClient from tilecloud.store.memcached import MemcachedTileStore server, template = name[12:].split("/", 1) host, port = server.split(":", 1) client = MemcachedClient(host, int(port)) return MemcachedTileStore(client, TemplateTileLayout(template)) if name.startswith("s3://"): from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.s3 import S3TileStore bucket, template = name[5:].split("/", 1) return S3TileStore(bucket, TemplateTileLayout(template)) if name.startswith("sqs://"): import boto.sqs # pylint: disable=import-error from boto.sqs.jsonmessage import JSONMessage # pylint: disable=import-error from tilecloud.store.sqs import SQSTileStore region_name, queue_name = name[6:].split("/", 1) connection = boto.sqs.connect_to_region(region_name) queue = connection.create_queue(queue_name) queue.set_message_class(JSONMessage) return SQSTileStore(queue) if name.startswith("redis://"): from tilecloud.store.redis import RedisTileStore return RedisTileStore(name) _, ext = os.path.splitext(name) if ext == ".bsddb": import bsddb # pylint: disable=import-error from tilecloud.store.bsddb import BSDDBTileStore return BSDDBTileStore(bsddb.hashopen(name)) if ext == ".mbtiles": import sqlite3 from tilecloud.store.mbtiles import MBTilesTileStore return MBTilesTileStore(sqlite3.connect(name)) if ext == ".zip": import zipfile from tilecloud.store.zip import ZipTileStore return ZipTileStore(zipfile.ZipFile(name, "a")) module = __import__(name) components = name.split(".") module = reduce(getattr, components[1:], module) return getattr(module, "tilestore")
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore((TemplateTileLayout( 'http://datahive.minedata.cn/mergeddata/Villtown,Road,Railway,Ptline,Adminflag,Poi,Annotation,Worldannotation/%(z)d/%(x)d/%(y)d?token=449ba822788c46bea9f90dfba48e5269&solu=4024' .format(server)) for server in 'abc'), attribution='© Minedata contributors, willmap', content_type='image/pbf')
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( (TemplateTileLayout('http://%s.tile.stamen.com/watercolor/%%(z)d/%%(x)d/%%(y)d.jpg' % server) for server in 'abcd'), attribution='Map tiles by <a href="http://stamen.com">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="http://openstreetmap.org">OpenStreetMap</a>, under <a href="http://creativecommons.org/licenses/by-sa/3.0">CC BY SA</a>.', content_type='image/jpg')
def setUp(self) -> None: self.tilelayout = TemplateTileLayout("%(z)d/%(x)d/%(y)d")
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( (TemplateTileLayout( "http://otile{0:d}.mqcdn.com/tiles/1.0.0/osm/%(z)d/%(x)d/%(y)d.png". format(i)) for i in range(1, 5)), attribution= 'Data, imagery and map information provided by MapQuest, <a href="http://www.openstreetmap.org/">Open Street Map</a> and contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>.', content_type="image/png", )
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( ( TemplateTileLayout("http://{0!s}.tile.openstreetmap.org/%(z)d/%(x)d/%(y)d.png".format(server)) for server in "abc" ), attribution="© OpenStreetMap contributors, CC-BY-SA", content_type="image/png", )
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( ( TemplateTileLayout(f"http://{server!s}.tile.openstreetmap.org/%(z)d/%(x)d/%(y)d.png") for server in "abc" ), attribution="© OpenStreetMap contributors, CC-BY-SA", content_type="image/png", )
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( (TemplateTileLayout( 'http://%s.tile.stamen.com/terrain/%%(z)d/%%(x)d/%%(y)d.jpg' % server) for server in 'abcd'), attribution= 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="http://openstreetmap.org">OpenStreetMap</a>, under <a href="http://creativecommons.org/licenses/by-sa/3.0">CC BY SA</a>.', content_type='image/jpg')
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( (TemplateTileLayout( "http://{0!s}.tile.stamen.com/watercolor/%(z)d/%(x)d/%(y)d.jpg".format( server)) for server in "abcd"), attribution= 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="http://openstreetmap.org">OpenStreetMap</a>, under <a href="http://creativecommons.org/licenses/by-sa/3.0">CC BY SA</a>.', content_type="image/jpg", )
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( (TemplateTileLayout( 'http://{0!s}.tile.stamen.com/terrain/%(z)d/%(x)d/%(y)d.jpg'.format( server)) for server in 'abcd'), attribution= 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="http://openstreetmap.org">OpenStreetMap</a>, under <a href="http://creativecommons.org/licenses/by-sa/3.0">CC BY SA</a>.', content_type='image/jpg')
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( ( TemplateTileLayout(f"http://{server!s}.tile.stamen.com/toner/%(z)d/%(x)d/%(y)d.png") for server in "abcd" ), attribution='Map tiles by <a href="http://stamen.com">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="http://openstreetmap.org">OpenStreetMap</a>, under <a href="http://creativecommons.org/licenses/by-sa/3.0">CC BY SA</a>.', content_type="image/png", )
def load(cls, name): # pragma: no cover """ Construct a :class:`TileStore` from a name. :param name: Name :type name: string :rtype: :class:`TileStore` The following shortcuts are available: bounds://<bounding-pyramid> file://<template> http://<template> and https://<template> memcached://<server>:<port>/<template> s3://<bucket>/<template> sqs://<region>/<queue> <filename>.bsddb <filename>.mbtiles <filename>.zip <module> """ if name == 'null://': from tilecloud.store.null import NullTileStore return NullTileStore() if name.startswith('bounds://'): from tilecloud.store.boundingpyramid import BoundingPyramidTileStore return BoundingPyramidTileStore( BoundingPyramid.from_string(name[9:])) if name.startswith('file://'): from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.filesystem import FilesystemTileStore return FilesystemTileStore(TemplateTileLayout(name[7:]), ) if name.startswith('http://') or name.startswith('https://'): from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore return URLTileStore((TemplateTileLayout(name), )) if name.startswith('memcached://'): from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.memcached import MemcachedTileStore from tilecloud.lib.memcached import MemcachedClient server, template = name[12:].split('/', 1) host, port = server.split(':', 1) client = MemcachedClient(host, int(port)) return MemcachedTileStore(client, TemplateTileLayout(template)) if name.startswith('s3://'): from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.s3 import S3TileStore bucket, template = name[5:].split('/', 1) return S3TileStore(bucket, TemplateTileLayout(template)) if name.startswith('sqs://'): from tilecloud.store.sqs import SQSTileStore import boto.sqs from boto.sqs.jsonmessage import JSONMessage region_name, queue_name = name[6:].split('/', 1) connection = boto.sqs.connect_to_region(region_name) queue = connection.create_queue(queue_name) queue.set_message_class(JSONMessage) return SQSTileStore(queue) root, ext = os.path.splitext(name) if ext == '.bsddb': import bsddb from tilecloud.store.bsddb import BSDDBTileStore return BSDDBTileStore(bsddb.hashopen(name)) if ext == '.mbtiles': import sqlite3 from tilecloud.store.mbtiles import MBTilesTileStore return MBTilesTileStore(sqlite3.connect(name)) if ext == '.zip': import zipfile from tilecloud.store.zip import ZipTileStore return ZipTileStore(zipfile.ZipFile(name, 'a')) module = __import__(name) components = name.split('.') module = reduce(lambda module, attr: getattr(module, attr), components[1:], module) return getattr(module, 'tilestore')
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( ( TemplateTileLayout("http://{0!s}.tile.stamen.com/terrain/%(z)d/%(x)d/%(y)d.jpg".format(server)) for server in "abcd" ), attribution='Map tiles by <a href="http://stamen.com">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="http://openstreetmap.org">OpenStreetMap</a>, under <a href="http://creativecommons.org/licenses/by-sa/3.0">CC BY SA</a>.', content_type="image/jpg", )
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tile_store = URLTileStore( (TemplateTileLayout( 'http://%s.tile.openstreetmap.org/%%(z)d/%%(x)d/%%(y)d.png' % server) for server in 'abc'), attribution='© OpenStreetMap contributors, CC-BY-SA', content_type='image/png')
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( (TemplateTileLayout( f"http://otile{i:d}.mqcdn.com/tiles/1.0.0/osm/%(z)d/%(x)d/%(y)d.png") for i in range(1, 5)), attribution= 'Data, imagery and map information provided by MapQuest, <a href="http://www.openstreetmap.org/">Open Street Map</a> and contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>.', content_type="image/png", )
from tilecloud.layout.template import TemplateTileLayout from tilecloud.store.url import URLTileStore tilestore = URLTileStore( (TemplateTileLayout('http://{0!s}.tile.openstreetmap.org/%(z)d/%(x)d/%(y)d.png'.format(server)) for server in 'abc'), attribution='© OpenStreetMap contributors, CC-BY-SA', content_type='image/png')