def _tile_at(point, zoom): """Return the map tile located at the given point in Spherical Mercator coordinates with the specified zoom level. """ point = PyGeoPoint.from_meters(point[0], point[1]) tile = PyGeoTile.for_point(point, zoom) return tile.google
def test_for_point(chicago_latitude_longitude, chicago_zoom, chicago_tms): latitude, longitude = chicago_latitude_longitude point = Point.from_latitude_longitude(latitude=latitude, longitude=longitude) tile = Tile.for_point(point=point, zoom=chicago_zoom) assert tile.tms == chicago_tms assert tile.zoom == chicago_zoom
def _tiles_from_bbox(bbox, zoom_level): """ * Returns all tiles for the specified bounding box """ if isinstance(bbox, dict): point_min = Point.from_latitude_longitude(latitude=bbox['tl'], longitude=bbox['tr']) point_max = Point.from_latitude_longitude(latitude=bbox['bl'], longitude=bbox['br']) elif isinstance(bbox, list): point_min = Point.from_latitude_longitude(latitude=bbox[1], longitude=bbox[0]) point_max = Point.from_latitude_longitude(latitude=bbox[3], longitude=bbox[2]) else: raise RuntimeError("bbox must bei either a dict or a list") tile_min = Tile.for_point(point_min, zoom_level) tile_max = Tile.for_point(point_max, zoom_level) tiles = [] for x in range(tile_min.tms_x, tile_max.tms_x + 1): for y in range(tile_min.tms_y, tile_max.tms_y + 1): tiles.append(Tile.from_tms(tms_x=x, tms_y=y, zoom=zoom_level)) return tiles