Files
autopilot/yandex_map.py
2025-09-20 23:34:40 +03:00

44 lines
1.5 KiB
Python

import math
from io import BytesIO
from time import sleep
import os
from PIL import Image
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
def generateURL(lat=49.103814, lon=55.794258, zoom=10):
return f"https://yandex.ru/maps/43/kazan/?ll={lat}%2C{lon}&z={zoom}"
class YandexMap:
def __init__(self):
options = webdriver.ChromeOptions()
# options.add_experimental_option("detach", True)
self.driver = webdriver.Chrome(options)
self.driver.get(generateURL())
sleep(2)
action = ActionChains(self.driver)
# Закрытие левой панели
action.click(self.driver.find_element(By.CLASS_NAME, 'sidebar-toggle-button'))
action.move_to_element_with_offset(self.driver.find_element(By.XPATH, "//div[@class='rounded-controls']/div[@class='rounded-controls__child'][5]//button"), 5, 5)
action.perform()
# Режим спутника
action.click(self.driver.find_element(By.CLASS_NAME, '_key_satellite'))
action.perform()
html = self.driver.find_element(By.TAG_NAME, 'html')
action.move_to_element_with_offset(html, 200, 200)
action.perform()
sleep(1)
def savePhoto(self, filename: str) -> bytes:
return self.driver.save_screenshot(filename)
def destroy(self):
self.driver.close()