Example #1
0
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)
Example #2
0
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)
Example #3
0
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))
Example #4
0
 def setUp(self):
     self.tilelayout = TemplateTileLayout('%(z)d/%(x)d/%(y)d')
Example #5
0
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",
)
Example #6
0
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",
)
Example #7
0
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')
Example #8
0
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')
Example #9
0
    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")
Example #10
0
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='&copy; Minedata contributors, willmap',
                         content_type='image/pbf')
Example #11
0
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')
Example #12
0
 def setUp(self) -> None:
     self.tilelayout = TemplateTileLayout("%(z)d/%(x)d/%(y)d")
Example #13
0
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="&copy; OpenStreetMap contributors, CC-BY-SA",
    content_type="image/png",
)
Example #15
0
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="&copy; OpenStreetMap contributors, CC-BY-SA",
    content_type="image/png",
)
Example #16
0
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')
Example #17
0
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",
)
Example #18
0
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')
Example #19
0
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",
)
Example #20
0
    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')
Example #21
0
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",
)
Example #22
0
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='&copy; OpenStreetMap contributors, CC-BY-SA',
    content_type='image/png')
Example #23
0
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",
)
Example #24
0
 def setUp(self):
     self.tilelayout = TemplateTileLayout('%(z)d/%(x)d/%(y)d')
Example #25
0
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='&copy; OpenStreetMap contributors, CC-BY-SA', content_type='image/png')