示例#1
0
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
示例#3
0
    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