feat: dynamic map; refactor code and fix bugs
This commit is contained in:
@@ -6,6 +6,7 @@ from selenium.webdriver.common.by import By
|
||||
from selenium.webdriver.common.action_chains import ActionChains
|
||||
from time import sleep
|
||||
|
||||
import constants
|
||||
import cv2
|
||||
import math
|
||||
import numpy as np
|
||||
@@ -24,6 +25,7 @@ class YandexMap:
|
||||
self.initial_lat = initial_lat
|
||||
self.initial_lon = initial_lon
|
||||
self.initial_zoom = initial_zoom
|
||||
self.pixel_ratio = constants.YANDEX_PIXEL_RATIO[self.initial_zoom]
|
||||
|
||||
options = webdriver.ChromeOptions()
|
||||
# options.add_experimental_option("detach", True)
|
||||
@@ -32,9 +34,8 @@ class YandexMap:
|
||||
self.driver.maximize_window()
|
||||
sleep(2)
|
||||
|
||||
action = ActionChains(self.driver)
|
||||
|
||||
# Закрытие левой панели
|
||||
action = ActionChains(self.driver)
|
||||
action.click(self.driver.find_element(By.CLASS_NAME, 'sidebar-toggle-button'))
|
||||
action.perform()
|
||||
|
||||
@@ -45,6 +46,19 @@ class YandexMap:
|
||||
|
||||
sleep(0.2)
|
||||
|
||||
def open(self, lat, lon, zoom):
|
||||
self.initial_lat = lat
|
||||
self.initial_lon = lon
|
||||
self.initial_zoom = zoom
|
||||
self.pixel_ratio = constants.YANDEX_PIXEL_RATIO[self.initial_zoom]
|
||||
self.driver.get(generateURL(lat, lon, zoom))
|
||||
sleep(2)
|
||||
|
||||
# Закрытие левой панели
|
||||
action = ActionChains(self.driver)
|
||||
action.click(self.driver.find_element(By.CLASS_NAME, 'sidebar-toggle-button'))
|
||||
action.perform()
|
||||
|
||||
def save_photo(self, filename: str) -> bytes:
|
||||
return self.driver.save_screenshot(filename)
|
||||
|
||||
@@ -86,4 +100,8 @@ class YandexMap:
|
||||
def make_screenshot(self) -> Image.Image:
|
||||
png = self.driver.get_screenshot_as_png()
|
||||
im = Image.open(BytesIO(png))
|
||||
return utility.cv2_to_pil(np.array(im)[:, :])
|
||||
return utility.cv2_to_pil(np.array(im)[:, :])
|
||||
|
||||
def get_geolocation(self):
|
||||
current_url = self.driver.current_url
|
||||
return utility.parse_yandex_maps_url(current_url)
|
||||
|
||||
Reference in New Issue
Block a user