Ejemplo n.º 1
0
 def test_run_with_errors(self):
     mb = MBTilesBuilder(tiles_url='http://foo.bar')
     mb.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[0, 1])
     self.assertRaises(DownloadError, mb.run)
     mb = MBTilesBuilder(tiles_url='http://foo.bar', ignore_errors=True)
     mb.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[0, 1])
     mb.run()
Ejemplo n.º 2
0
 def test_clean_gather(self):
     mb = MBTilesBuilder()
     self.assertEqual(mb.tmp_dir, self.temp_dir)
     self.assertFalse(os.path.exists(mb.tmp_dir))
     mb._gather((1, 1, 1))
     self.assertTrue(os.path.exists(mb.tmp_dir))
     mb._clean_gather()
     self.assertFalse(os.path.exists(mb.tmp_dir))
Ejemplo n.º 3
0
    def test_init(self):
        mb = MBTilesBuilder()
        self.assertEqual(mb.filepath, os.path.join(os.getcwd(), 'tiles.mbtiles'))
        self.assertEqual(mb.cache.folder, self.temp_cache)
        self.assertEqual(mb.tmp_dir, self.temp_dir)

        mb = MBTilesBuilder(filepath='/foo/bar/toto.mb')
        self.assertEqual(mb.cache.folder, self.temp_cache)
        self.assertEqual(mb.tmp_dir, os.path.join(tempfile.gettempdir(), 'landez/toto'))
Ejemplo n.º 4
0
    def test_init(self):
        mb = MBTilesBuilder()
        self.assertEqual(mb.filepath, os.path.join(os.getcwd(),
                                                   'tiles.mbtiles'))
        self.assertEqual(mb.cache.folder, '/tmp/landez/stileopenstreetmaporg')
        self.assertEqual(mb.tmp_dir, '/tmp/landez/tiles')

        mb = MBTilesBuilder(filepath='/foo/bar/toto.mb')
        self.assertEqual(mb.cache.folder, '/tmp/landez/stileopenstreetmaporg')
        self.assertEqual(mb.tmp_dir, '/tmp/landez/toto')
Ejemplo n.º 5
0
 def test_run_jpeg(self):
     output = 'mq.mbtiles'
     mb = MBTilesBuilder(filepath=output,
                         tiles_url='http://oatile1.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg')
     mb.add_coverage(bbox=(1.3, 43.5, 1.6, 43.7), zoomlevels=[10])
     mb.run(force=True)
     self.assertEqual(mb.nbtiles, 4)
     # Check result
     reader = MBTilesReader(output)
     self.assertEqual(reader.metadata().get('format'), 'jpeg')
     os.remove(output)
Ejemplo n.º 6
0
 def test_run_with_errors(self):
     mb = MBTilesBuilder(tiles_url='http://foo.bar')
     mb.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[0, 1])
     self.assertRaises(DownloadError, mb.run)
     mb = MBTilesBuilder(tiles_url='http://foo.bar', ignore_errors=True)
     mb.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[0, 1])
     mb.run()
Ejemplo n.º 7
0
 def test_run(self):
     mb = MBTilesBuilder(filepath='big.mbtiles')
     # Fails if no coverage
     self.assertRaises(EmptyCoverageError, mb.run, True)
     # Runs well from web tiles
     mb.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[0, 1])
     mb.run(force=True)
     self.assertEqual(mb.nbtiles, 5)
     # Read from other mbtiles
     mb2 = MBTilesBuilder(filepath='small.mbtiles', mbtiles_file=mb.filepath, cache=False)
     mb2.add_coverage(bbox=(-180.0, 1, -1, 90.0), zoomlevels=[1])
     mb2.run(force=True)
     self.assertEqual(mb2.nbtiles, 1)
     os.remove('small.mbtiles')
     os.remove('big.mbtiles')
Ejemplo n.º 8
0
 def test_zoomlevels(self):
     mb = MBTilesBuilder()
     mb.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[0, 1])
     mb.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[11, 12])
     mb.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[5])
     self.assertEqual(mb.zoomlevels[0], 0)
     self.assertEqual(mb.zoomlevels[1], 1)
     self.assertEqual(mb.zoomlevels[2], 5)
     self.assertEqual(mb.zoomlevels[3], 11)
     self.assertEqual(mb.zoomlevels[4], 12)
Ejemplo n.º 9
0
 def test_exportimage(self):
     from PIL import Image
     output = "image.png"
     ie = ImageExporter()
     ie.export_image((-180.0, -90.0, 180.0, 90.0), 2, output)
     i = Image.open(output)
     self.assertEqual((1024, 1024), i.size)
     os.remove(output)
     # Test from other mbtiles
     mb = MBTilesBuilder(filepath='toulouse.mbtiles')
     mb.add_coverage(bbox=(1.3, 43.5, 1.6, 43.7), zoomlevels=[12])
     mb.run()
     ie = ImageExporter(mbtiles_file=mb.filepath)
     ie.export_image((1.3, 43.5, 1.6, 43.7), 12, output)
     os.remove('toulouse.mbtiles')
     i = Image.open(output)
     self.assertEqual((1280, 1024), i.size)
     os.remove(output)
Ejemplo n.º 10
0
 def test_zoomlevels(self):
     mb = MBTilesBuilder()
     mb.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[0, 1])
     mb.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[11, 12])
     mb.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[5])
     self.assertEqual(mb.zoomlevels[0], 0)
     self.assertEqual(mb.zoomlevels[1], 1)
     self.assertEqual(mb.zoomlevels[2], 5)
     self.assertEqual(mb.zoomlevels[3], 11)
     self.assertEqual(mb.zoomlevels[4], 12)
Ejemplo n.º 11
0
 def test_clean_gather(self):
     mb = MBTilesBuilder()
     self.assertEqual(mb.tmp_dir, self.temp_dir)
     self.assertFalse(os.path.exists(mb.tmp_dir))
     mb._gather((1, 1, 1))
     self.assertTrue(os.path.exists(mb.tmp_dir))
     mb._clean_gather()
     self.assertFalse(os.path.exists(mb.tmp_dir))
Ejemplo n.º 12
0
 def test_clean(self):
     mb = MBTilesBuilder()
     # Missing file
     self.assertEqual(mb.filepath, os.path.join(os.getcwd(), 'tiles.mbtiles'))
     self.assertFalse(os.path.exists(mb.filepath))
     mb.clean()
     # Empty file
     open(mb.filepath, 'w').close() 
     self.assertTrue(os.path.exists(mb.filepath))
     mb.clean()
     self.assertTrue(os.path.exists(mb.filepath))
     mb.clean(full=True)
     self.assertFalse(os.path.exists(mb.filepath))
Ejemplo n.º 13
0
 def test_run_jpeg(self):
     output = 'mq.mbtiles'
     mb = MBTilesBuilder(filepath=output,
                         tiles_url='http://oatile1.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg')
     mb.add_coverage(bbox=(1.3, 43.5, 1.6, 43.7), zoomlevels=[10])
     mb.run(force=True)
     self.assertEqual(mb.nbtiles, 4)
     # Check result
     reader = MBTilesReader(output)
     self.assertEqual(reader.metadata().get('format'), 'jpeg')
     os.remove(output)
Ejemplo n.º 14
0
    def test_grid_content(self):
        here = os.path.abspath(os.path.dirname(__file__))
        mb = MBTilesBuilder(
            stylefile=os.path.join(here, "data_test", "stylesheet.xml"),
            grid_fields=["NAME"],
            grid_layer=0,
            filepath='foo.mbtiles',
            cache=False
        )

        mb.add_coverage(bbox=(-180, -90, 180, 90), zoomlevels=[2])
        mb.run()

        mbtiles_path = os.path.join(os.getcwd(), 'foo.mbtiles')
        mbtiles = sqlite3.connect(mbtiles_path).cursor()
        grid = mbtiles.execute("SELECT grid FROM grids WHERE zoom_level=2 AND tile_column=1 AND tile_row=1")
        produced_data = json.loads(mb.grid((2, 1, 1)))['data']['39']['NAME']
        expected_data = 'Costa Rica'
        os.remove('foo.mbtiles')
        self.assertEqual(produced_data, expected_data)
Ejemplo n.º 15
0
 def test_exportimage(self):
     from PIL import Image
     output = "image.png"
     ie = ImageExporter()
     ie.export_image((-180.0, -90.0, 180.0, 90.0), 2, output)
     i = Image.open(output)
     self.assertEqual((1024, 1024), i.size)
     os.remove(output)
     # Test from other mbtiles
     mb = MBTilesBuilder(filepath='toulouse.mbtiles')
     mb.add_coverage(bbox=(1.3, 43.5, 1.6, 43.7), zoomlevels=[12])
     mb.run()
     ie = ImageExporter(mbtiles_file=mb.filepath)
     ie.export_image((1.3, 43.5, 1.6, 43.7), 12, output)
     os.remove('toulouse.mbtiles')
     i = Image.open(output)
     self.assertEqual((1280, 1024), i.size)
     os.remove(output)
Ejemplo n.º 16
0
    def test_grid_content(self):
        here = os.path.abspath(os.path.dirname(__file__))
        mb = MBTilesBuilder(
            stylefile=os.path.join(here, "data_test", "stylesheet.xml"),
            grid_fields=["NAME"],
            grid_layer=0,
            filepath='foo.mbtiles',
            cache=False
        )

        mb.add_coverage(bbox=(-180, -90, 180, 90), zoomlevels=[2])
        mb.run()

        mbtiles_path = os.path.join(os.getcwd(), 'foo.mbtiles')
        mbtiles = sqlite3.connect(mbtiles_path).cursor()
        grid = mbtiles.execute("SELECT grid FROM grids WHERE zoom_level=2 AND tile_column=1 AND tile_row=1")
        produced_data = json.loads(mb.grid((2, 1, 1)))['data']['39']['NAME']
        expected_data = 'Costa Rica'
        os.remove('foo.mbtiles')
        self.assertEqual(produced_data, expected_data)
Ejemplo n.º 17
0
    def test_run(self):
        mb = MBTilesBuilder(filepath='big.mbtiles')
        self.assertRaises(EmptyCoverageError, mb.run)

        mb.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[0, 1])
        mb.run()
        self.assertEqual(mb.nbtiles, 5)

        # Test from other mbtiles
        mb2 = MBTilesBuilder(filepath='small.mbtiles', mbtiles_file=mb.filepath, cache=False)
        mb2.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[1])
        mb2.run()
        self.assertEqual(mb2.nbtiles, 4)
        mb.clean(full=True)
        mb2.clean(full=True)
Ejemplo n.º 18
0
 def test_run(self):
     mb = MBTilesBuilder(filepath='big.mbtiles')
     # Fails if no coverage
     self.assertRaises(EmptyCoverageError, mb.run, True)
     # Runs well from web tiles
     mb.add_coverage(bbox=(-180.0, -90.0, 180.0, 90.0), zoomlevels=[0, 1])
     mb.run(force=True)
     self.assertEqual(mb.nbtiles, 5)
     # Read from other mbtiles
     mb2 = MBTilesBuilder(filepath='small.mbtiles', mbtiles_file=mb.filepath, cache=False)
     mb2.add_coverage(bbox=(-180.0, 1, -1, 90.0), zoomlevels=[1])
     mb2.run(force=True)
     self.assertEqual(mb2.nbtiles, 1)
     os.remove('small.mbtiles')
     os.remove('big.mbtiles')