Advertisement
Guest User

Untitled

a guest
Aug 5th, 2022
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.84 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. def get_jizz(x, y, level):
  4.   assert(isinstance(x, int))
  5.   assert(isinstance(y, int))
  6.   assert(isinstance(level, int))
  7.  
  8.   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"
  9.   print(url, level)
  10.   response = requests.get(url)
  11.   assert(response.status_code == 200)
  12.   return np.swapaxes(np.asarray(Image.open(BytesIO(response.content)).convert("RGB")), 0, 1)
  13.  
  14. if __name__ == "__main__":
  15.   import numpy as np
  16.   import pygame as pg
  17.   import requests
  18.   from io import BytesIO
  19.   from PIL import Image
  20.  
  21.   pg.init()
  22.   screen = pg.display.set_mode([400, 400])
  23.  
  24.   MAP_WIDTH = 40075016
  25.   MAP_HEIGHT = 40075016
  26.   # pad 39a
  27.   x = -8972831 - MAP_WIDTH // 2
  28.   y = 3325868 - MAP_WIDTH // 2
  29.   level = 1
  30.   image = get_jizz(x, y, level)
  31.  
  32.   clock = pg.time.Clock()
  33.   while True:
  34.     for event in pg.event.get():
  35.       match event.type:
  36.         case pg.KEYDOWN:
  37.           match event.key:
  38.             case pg.K_UP | pg.K_w:
  39.               y += MAP_HEIGHT // level // 5
  40.             case pg.K_DOWN | pg.K_s:
  41.               y -= MAP_HEIGHT // level // 5
  42.             case pg.K_RIGHT | pg.K_d:
  43.               x += MAP_WIDTH // level // 5
  44.             case pg.K_LEFT | pg.K_a:
  45.               x -= MAP_WIDTH // level // 5
  46.             case pg.K_PLUS | pg.K_KP_PLUS:
  47.               level += level
  48.               x += MAP_WIDTH // level // 2
  49.               y += MAP_HEIGHT // level // 2
  50.             case pg.K_MINUS | pg.K_KP_MINUS:
  51.               x -= MAP_WIDTH // level // 2
  52.               y -= MAP_HEIGHT // level // 2
  53.               level //= 2
  54.           image = get_jizz(x, y, level)
  55.         case pg.QUIT:
  56.           pg.quit()
  57.           exit()
  58.     pg.surfarray.blit_array(screen, image)
  59.     pg.display.flip()
  60.     clock.tick(60)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement