Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- def get_jizz(x, y, level):
- assert(isinstance(x, int))
- assert(isinstance(y, int))
- assert(isinstance(level, int))
- url = f"https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/export?bbox={x},{y},{x + MAP_WIDTH // level},{y + MAP_HEIGHT // level}&f=image"
- print(url, level)
- response = requests.get(url)
- assert(response.status_code == 200)
- return np.swapaxes(np.asarray(Image.open(BytesIO(response.content)).convert("RGB")), 0, 1)
- if __name__ == "__main__":
- import numpy as np
- import pygame as pg
- import requests
- from io import BytesIO
- from PIL import Image
- pg.init()
- screen = pg.display.set_mode([400, 400])
- MAP_WIDTH = 40075016
- MAP_HEIGHT = 40075016
- # pad 39a
- x = -8972831 - MAP_WIDTH // 2
- y = 3325868 - MAP_WIDTH // 2
- level = 1
- image = get_jizz(x, y, level)
- clock = pg.time.Clock()
- while True:
- for event in pg.event.get():
- match event.type:
- case pg.KEYDOWN:
- match event.key:
- case pg.K_UP | pg.K_w:
- y += MAP_HEIGHT // level // 5
- case pg.K_DOWN | pg.K_s:
- y -= MAP_HEIGHT // level // 5
- case pg.K_RIGHT | pg.K_d:
- x += MAP_WIDTH // level // 5
- case pg.K_LEFT | pg.K_a:
- x -= MAP_WIDTH // level // 5
- case pg.K_PLUS | pg.K_KP_PLUS:
- level += level
- x += MAP_WIDTH // level // 2
- y += MAP_HEIGHT // level // 2
- case pg.K_MINUS | pg.K_KP_MINUS:
- x -= MAP_WIDTH // level // 2
- y -= MAP_HEIGHT // level // 2
- level //= 2
- image = get_jizz(x, y, level)
- case pg.QUIT:
- pg.quit()
- exit()
- pg.surfarray.blit_array(screen, image)
- pg.display.flip()
- clock.tick(60)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement