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]
def quadkey_to_lonlat(qk): tilex, tiley, level = tsm.quadkey_to_tile(qk) tile = np.column_stack((tilex, tiley)) pix, piy = tsm.tile_to_pixel(tile) pixel = np.column_stack((pix, piy)) lat, lon = tsm.pixel_to_geo(pixel, level) return np.column_stack((lat, lon))
def quadkey_to_metre(qk, grd_res): tilex, tiley, level = tsm.quadkey_to_tile(qk) tile = np.column_stack((tilex, tiley)) pix, piy = tsm.tile_to_pixel(tile) pixel = np.column_stack((pix, piy)) rel_metre = pixel * grd_res.reshape(-1, 1) return rel_metre
def lonlat_to_quadkey_with_shift(quadkey, loshift): quadkeys = np.array([quadkey] * len(loshift)) tilex, tiley, level = tsm.quadkey_to_tile(quadkeys) tile = np.column_stack((tilex, tiley)) shift = np.array(loshift) tile = tile + shift loquadkey = tsm.tile_to_quadkey(tile, level) loquadkey = loquadkey.reshape(-1, 1) loquadkey = pd.Series(loquadkey[:, 0]).astype(str) loquadkey = loquadkey.str[1:] return loquadkey.values.astype(str)
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)
def to_tile(self): return TileSystem.quadkey_to_tile(self.key)