-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathgeocoder_coords.py
56 lines (44 loc) · 2.49 KB
/
geocoder_coords.py
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
#!/usr/bin/env python
# coding: utf-8
# In[ ]:
import requests
def coords_to_address(x, y):
geocoder_request = f"https://geocode-maps.yandex.ru/1.x/?apikey=40d1649f-0493-4b70-98ba-98533de7710b&geocode={x},{y}&format=json"
# Выполняем запрос.
response = requests.get(geocoder_request)
if response:
# Преобразуем ответ в json-объект
json_response = response.json()
# Получаем первый топоним из ответа геокодера.
# Согласно описанию ответа, он находится по следующему пути:
toponym = json_response["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]
# Полный адрес топонима:
toponym_address = toponym["metaDataProperty"]["GeocoderMetaData"]["text"]
# Координаты центра топонима:
toponym_coodrinates = toponym["Point"]["pos"]
# Печатаем извлечённые из ответа поля:
return toponym_address
else:
print("Ошибка выполнения запроса:")
print(geocoder_request)
print("Http статус:", response.status_code, "(", response.reason, ")")
def addess_to_coords(address):
geocoder_request = f"https://geocode-maps.yandex.ru/1.x/?apikey=40d1649f-0493-4b70-98ba-98533de7710b&geocode={address}&format=json"
# Выполняем запрос.
response = requests.get(geocoder_request)
if response:
# Преобразуем ответ в json-объект
json_response = response.json()
# Получаем первый топоним из ответа геокодера.
# Согласно описанию ответа, он находится по следующему пути:
toponym = json_response["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]
# Полный адрес топонима:
toponym_address = toponym["metaDataProperty"]["GeocoderMetaData"]["text"]
# Координаты центра топонима:
toponym_coodrinates = toponym["Point"]["pos"]
# Печатаем извлечённые из ответа поля:
return toponym_coodrinates
else:
print("Ошибка выполнения запроса:")
print(geocoder_request)
print("Http статус:", response.status_code, "(", response.reason, ")")