예제 #1
0
파일: __init__.py 프로젝트: minimav/QuadKey
 def nearby(self):
     tile, level = TileSystem.quadkey_to_tile(self.key)
     perms = [(-1, -1), (-1, 0), (-1, 1), (0, -1),
              (0, 1), (1, -1), (1, 0), (1, 1)]
     tiles = set(
         map(lambda perm: (abs(tile[0] + perm[0]), abs(tile[1] + perm[1])), perms))
     return [TileSystem.tile_to_quadkey(tile, level) for tile in tiles]
예제 #2
0
 def nearby(self):
     tile, level = TileSystem.quadkey_to_tile(self.key)
     perms = [(-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 1), (1, -1), (1, 0),
              (1, 1)]
     tiles = set(
         map(lambda perm: (abs(tile[0] + perm[0]), abs(tile[1] + perm[1])),
             perms))
     return [TileSystem.tile_to_quadkey(tile, level) for tile in tiles]
예제 #3
0
def from_geo(geo, level):
    """
    Constucts a quadkey representation from geo and level
    geo => (lat, lon)
    If lat or lon are outside of bounds, they will be clipped
    If level is outside of bounds, an AssertionError is raised

    """
    pixel = TileSystem.geo_to_pixel(geo, level)
    tile = TileSystem.pixel_to_tile(pixel)
    key = TileSystem.tile_to_quadkey(tile, level)
    return QuadKey(key)
예제 #4
0
파일: __init__.py 프로젝트: minimav/QuadKey
def from_geo(geo, level):
    """
    Constucts a quadkey representation from geo and level
    geo => (lat, lon)
    If lat or lon are outside of bounds, they will be clipped
    If level is outside of bounds, an AssertionError is raised

    """
    pixel = TileSystem.geo_to_pixel(geo, level)
    tile = TileSystem.pixel_to_tile(pixel)
    key = TileSystem.tile_to_quadkey(tile, level)
    return QuadKey(key)
예제 #5
0
 def testMapScale(self):
     geo = (40., -105.)
     level = 7
     dpi = 96
     scale = 3540913.0290224836
     error = abs(scale - TileSystem.map_scale(geo[0], level, dpi))
     threshold = 1e-5
     self.assertTrue(error < threshold)
예제 #6
0
 def testPixelToTile(self):
     pixel = (6827, 12405)
     tile = (26, 48)
     self.assertEqual(tile, TileSystem.pixel_to_tile(pixel))
예제 #7
0
def from_tile(tile, level):
    return QuadKey(TileSystem.tile_to_quadkey(tile, level))
예제 #8
0
 def testPixelToGeo(self):
     pixel = (6827, 12405)
     level = 7
     geo = (40.002372, -104.996338)
     self.assertEqual(geo, TileSystem.pixel_to_geo(pixel, level))
예제 #9
0
 def testTileToPixel(self):
     tile = (26, 48)
     pixel = (6656, 12288)
     self.assertEqual(pixel, TileSystem.tile_to_pixel(tile))
예제 #10
0
 def testQuadkeyToTile(self):
     tile = (26, 48)
     level = 7
     key = "0231010"
     self.assertEqual([tile, level], TileSystem.quadkey_to_tile(key))
예제 #11
0
 def testMapScale(self):
     geo = (40., -105.)
     level = 7
     dpi = 96
     scale = 3540913.0290224836
     self.assertEqual(scale, TileSystem.map_scale(geo[0], level, dpi))
예제 #12
0
 def testPixelToGeo(self):
     pixel = (6827, 12405)
     level = 7
     geo = (40.002372, -104.996338)
     self.assertEqual(geo, TileSystem.pixel_to_geo(pixel, level))
예제 #13
0
 def testQuadkeyToTile(self):
     tile = (26, 48)
     level = 7
     key = "0231010"
     self.assertEqual([tile, level], TileSystem.quadkey_to_tile(key))
예제 #14
0
 def testMapSize(self):
     self.assertEqual(512, TileSystem.map_size(1))
     with self.assertRaises(AssertionError):
         TileSystem.map_size(0)
예제 #15
0
 def testTileToPixel(self):
     tile = (26, 48)
     pixel = (6656, 12288)
     self.assertEqual(pixel, TileSystem.tile_to_pixel(tile))
예제 #16
0
파일: __init__.py 프로젝트: minimav/QuadKey
def from_tile(tile, level):
    return QuadKey(TileSystem.tile_to_quadkey(tile, level))
예제 #17
0
 def area(self):
     size = TileSystem.map_size(self.level)
     LAT = 0
     res = TileSystem.ground_resolution(LAT, self.level)
     side = (size / 2) * res
     return side * side
예제 #18
0
 def to_geo(self, centered=False):
     ret = TileSystem.quadkey_to_tile(self.key)
     tile = ret[0]
     lvl = ret[1]
     pixel = TileSystem.tile_to_pixel(tile, centered)
     return TileSystem.pixel_to_geo(pixel, lvl)
예제 #19
0
 def to_tile(self):
     return TileSystem.quadkey_to_tile(self.key)
예제 #20
0
 def testTileToQuadkey(self):
     tile = (26, 48)
     level = 7
     key = "0231010"
     self.assertEqual(key, TileSystem.tile_to_quadkey(tile, level))
예제 #21
0
파일: __init__.py 프로젝트: minimav/QuadKey
 def area(self):
     size = TileSystem.map_size(self.level)
     LAT = 0
     res = TileSystem.ground_resolution(LAT, self.level)
     side = (size / 2) * res
     return side * side
예제 #22
0
 def testClip(self):
     self.assertEqual(1, TileSystem.clip(0, (1, 5)))
     self.assertEqual(5, TileSystem.clip(10, (1, 5)))
     self.assertEqual(3, TileSystem.clip(3, (1, 5)))
     with self.assertRaises(AssertionError):
         TileSystem.clip(7, (5, 1))
예제 #23
0
파일: __init__.py 프로젝트: minimav/QuadKey
 def to_tile(self):
     return TileSystem.quadkey_to_tile(self.key)
예제 #24
0
 def testGroundResolution(self):
     geo = (40., -105.)
     res = 936.86657226219847
     TileSystem.ground_resolution(geo[0], 7)
예제 #25
0
파일: __init__.py 프로젝트: minimav/QuadKey
 def to_geo(self, centered=False):
     ret = TileSystem.quadkey_to_tile(self.key)
     tile = ret[0]
     lvl = ret[1]
     pixel = TileSystem.tile_to_pixel(tile, centered)
     return TileSystem.pixel_to_geo(pixel, lvl)
예제 #26
0
 def testGeoToPixel(self):
     geo = (40., -105.)
     level = 7
     pixel = (6827, 12405)
     self.assertEqual(pixel, TileSystem.geo_to_pixel(geo, level))
예제 #27
0
 def testMapSize(self):
     self.assertEqual(512, TileSystem.map_size(1))
     with self.assertRaises(AssertionError):
         TileSystem.map_size(0)
예제 #28
0
 def testPixelToTile(self):
     pixel = (6827, 12405)
     tile = (26, 48)
     self.assertEqual(tile, TileSystem.pixel_to_tile(pixel))
예제 #29
0
 def testGroundResolution(self):
     geo = (40., -105.)
     res = 936.86657226219847
     TileSystem.ground_resolution(geo[0], 7)
예제 #30
0
 def testTileToQuadkey(self):
     tile = (26, 48)
     level = 7
     key = "0231010"
     self.assertEqual(key, TileSystem.tile_to_quadkey(tile, level))
예제 #31
0
 def testGeoToPixel(self):
     geo = (40., -105.)
     level = 7
     pixel = (6827, 12405)
     self.assertEqual(pixel, TileSystem.geo_to_pixel(geo, level))
예제 #32
0
 def testClip(self):
     self.assertEqual(1, TileSystem.clip(0, (1, 5)))
     self.assertEqual(5, TileSystem.clip(10, (1, 5)))
     self.assertEqual(3, TileSystem.clip(3, (1, 5)))
     with self.assertRaises(AssertionError):
         TileSystem.clip(7, (5, 1))
예제 #33
0
 def testMapScale(self):
     geo = (40., -105.)
     level = 7
     dpi = 96
     scale = 3540913.0290224836
     self.assertEqual(scale, TileSystem.map_scale(geo[0], level, dpi))