-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path2.py
More file actions
81 lines (71 loc) · 2.85 KB
/
2.py
File metadata and controls
81 lines (71 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import sys
from PIL import Image, ImageQt
from io import BytesIO
import requests
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton
from PyQt5.QtCore import Qt
SCREEN_SIZE = [600, 550]
class Example(QWidget):
def __init__(self):
super().__init__()
self.setObjectName("Отображение карты")
self.setGeometry(100, 100, *SCREEN_SIZE)
self.ll_text = QtWidgets.QLabel(self)
self.ll_text.setText('Введите координаты:')
self.ll_text.move(10, 460)
self.ll_text.resize(110, 20)
self.ll_text.setGeometry(QtCore.QRect(10, 460, 110, 20))
self.ll_text = QtWidgets.QLabel(self)
self.ll_text.setText('Введите координаты:')
self.ll_text.setGeometry(QtCore.QRect(10, 460, 110, 20))
self.ll_edit = QtWidgets.QLineEdit(self)
self.ll_edit.move(130, 460)
self.ll_edit.resize(100, 20)
self.spn_text = QtWidgets.QLabel(self)
self.spn_text.setText('Введите масштаб:')
self.spn_text.move(10, 490)
self.spn_text.resize(110, 20)
self.spn_edit = QtWidgets.QLineEdit(self)
self.spn_edit.move(130, 490)
self.spn_edit.resize(100, 20)
self.start_show = QtWidgets.QPushButton(self)
self.start_show.setText('Показать карту')
self.start_show.move(260, 510)
self.start_show.resize(120, 30)
self.start_show.clicked.connect(self.start)
self.image = QtWidgets.QLabel(self)
self.image.move(0, 0)
self.image.resize(600, 450)
def getImage(self):
map_request = f"http://static-maps.yandex.ru/1.x/?ll={self.lon}," \
f"{self.lat}8&spn={str(self.spn)},{str(self.spn)}&l=map"
try:
response = requests.get(map_request)
self.img = Image.open(BytesIO(response.content))
self.update_image()
except Exception:
print('недопустимое значение масштаба')
def update_image(self):
self.image.setPixmap(QPixmap.fromImage(ImageQt.ImageQt(self.img)))
def keyPressEvent(self, event):
if event.key() == Qt.Key_PageUp:
self.spn += 0.001
self.getImage()
elif event.key() == Qt.Key_PageDown:
self.spn -= 0.001
self.getImage()
def start(self):
try:
self.lon, self.lat = self.ll_edit.text().split(', ')
self.spn = float(self.spn_edit.text())
self.getImage()
self.update_image()
except Exception:
print('Недопустимое значение параметров')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec())