def main(): ostankino_address = "Москва, улица Академика Королёва, 15к1" ostankino_height = 525 address = sys.argv[1] ostankino_point = get_coordinates(ostankino_address) address_point = get_coordinates(address) distance = math.trunc(lonlat_distance(ostankino_point, address_point) / 1000) antenna_height = round(calc_antenna_height(distance, ostankino_height)) print(f"Высота антенны на расстоянии {distance} км. составляет {antenna_height} м.")
def main(): # Забираем две адресные точки из параметров запуска. address_1 = sys.argv[1] address_2 = sys.argv[2] # Получаем координаты двух введенных адресных точек address_1_point = get_coordinates(address_1) address_2_point = get_coordinates(address_2) print(lonlat_distance(address_1_point, address_2_point))
def main(): address = sys.argv[1] address_point = get_coordinates(address) metro_name = get_nearest_object(address_point, "metro") if metro_name: print(f"Ближайшее к '{address}' - {metro_name}.") else: print(f"Рядом с '{address}' - метро нет.")
def main(): ostankino_address = "Москва, улица Академика Королёва, 15к1" ostankino_height = 525 # Забираем две адресную точку из параметров запуска. address = sys.argv[1] # Получаем координаты двух введенных адресных точек ostankino_point = get_coordinates(ostankino_address) address_point = get_coordinates(address) distance = math.trunc( lonlat_distance(ostankino_point, address_point) / 1000) # km -> m antenna_height = round(calc_antenna_height(distance, ostankino_height)) print( f"Высота антенны на расстоянии {distance} км. составляет {antenna_height} м." )
def main(): # Забираем адресную точку из параметров запуска. address = sys.argv[1] # Получаем координаты точки address_point = get_coordinates(address) # Получаем ближайшее метро. metro_name = get_nearest_object(address_point, "metro") if metro_name: print(f"Ближайшее к '{address}' - {metro_name}.") else: print(f"Рядом с '{address}' - метро нет.")
def main(): # Забираем адресную точку из параметров запуска. address = '' try: address = " ".join(sys.argv[1:]) except: print('No data') exit(1) if not address: print('No data') exit(1) # Получаем координаты точки address_point = get_coordinates(address) # Получаем район. district_name = get_nearest_object(address_point, "district") print(district_name)
def main(): toponym_to_find = " ".join(sys.argv[1:]) if toponym_to_find: # Показываем карту с фиксированным масштабом. lat, lon = get_coordinates(toponym_to_find) ll_spn = f"ll={lat},{lon}&spn=0.005,0.005" show_map(ll_spn, "map") # Показываем карту с масштабом, подобранным по заданному объекту. ll, spn = get_ll_span(toponym_to_find) ll_spn = f"ll={ll}&spn={spn}" show_map(ll_spn, "map") # Добавляем исходную точку на карту. point_param = f"pt={ll}" show_map(ll_spn, "map", add_params=point_param) else: print('No data')
def main(): toponym_to_find = " ".join(sys.argv[1:]) lat, lon = get_coordinates(toponym_to_find) address_ll = f"{lat},{lon}" span = "0.005,0.005" # Получаем координаты ближайшей аптеки. organization = find_business(address_ll, span, "аптека") point = organization["geometry"]["coordinates"] org_lat = float(point[0]) org_lon = float(point[1]) point_param = f"pt={org_lat},{org_lon},pm2dgl" show_map(f"ll={address_ll}&spn={span}", "map", add_params=point_param) # Добавляем на карту точку с исходным адресом. points_param = point_param + f"~{address_ll},pm2rdl" show_map("ll={0}&spn={1}".format(address_ll, span), "map", add_params=points_param) # Автопозиционирование show_map(map_type="map", add_params=points_param) # Сниппет # Название организации. name = organization["properties"]["CompanyMetaData"]["name"] # Адрес организации. address = organization["properties"]["CompanyMetaData"]["address"] # Время работы time = organization["properties"]["CompanyMetaData"]["Hours"]["text"] # Расстояние distance = round(lonlat_distance((lon, lat), (org_lon, org_lat))) snippet = f"Название:\t{name}\nАдрес:\t{address}\nВремя работы:\t{time}\n" \ f"Расстояние:\t{distance}м." print(snippet)
def main(): toponym_to_find = " ".join(sys.argv[1:]) if not toponym_to_find: print('No data') exit(1) lat, lon = get_coordinates(toponym_to_find) address_ll = f"{lat},{lon}" # Подбираем масштаб, чтобы получить минимум 10 аптек. delta = 0.01 organizations = [] while delta < 100 and len(organizations) < 10: delta *= 2.0 span = f"{delta},{delta}" organizations = find_businesses(address_ll, span, "аптека") # Формируем список из координат аптек и их круглосуточности farmacies_with_time = [] for org in organizations: point = org["geometry"]["coordinates"] hours = org["properties"]["CompanyMetaData"].get("Hours", None) if hours: # У организации есть данные о времени работы available = hours["Availabilities"][0] is_24x7 = available.get("Everyday", False) and available.get("TwentyFourHours", False) else: # Данных о времени работы нет. is_24x7 = None # Запоминаем полученные данные. farmacies_with_time.append((point, is_24x7)) # Формируем параметр с точками points_param = "pt=" + "~".join([ f'{point[0]},{point[1]},pm2{"gn" if is_24x7 else ("lb" if not is_24x7 else "gr")}l' for point, is_24x7 in farmacies_with_time]) # Используем автопозиционирование карты по всем меткам. show_map(map_type="map", add_params=points_param)
import sys import os import pygame from Samples.geocoder import get_coordinates, get_ll_span from Samples.mapapi_PG import show_map if __name__ == '__main__': toponym_to_find = " ".join(sys.argv[1:]) if toponym_to_find: ranning = True zoom = 10 lat, lon = get_coordinates(toponym_to_find) map_file = 'map.png' # Инициализируем pygame pygame.init() screen = pygame.display.set_mode((600, 450)) running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.KEYUP: if event.key == pygame.K_ESCAPE: running = False # if event.key == pygame.K_PAGEUP: # if zoom < 23: # zoom += 1 # elif event.key == pygame.K_PAGEDOWN:
def main(): global flag pygame.font.init() font = pygame.font.Font(None, 32) fond_for_err = pygame.font.Font(None, 16) input_box = pygame.Rect(5, 5, 140, 32) clear_buton = pygame.Rect(5, 43, 110, 24) color_inactive = pygame.Color('lightskyblue3') color_active = pygame.Color('black') color = color_inactive active = False text = '' end_text = font.render('', True, color) step = 0.006 # Показываем карту с фиксированным масштабом. ll_spn = f"ll={res.coord_x},{res.coord_y}&z={res.zoom}&l={res.type_map}" x, y, zoom, type_map = res.coord_x, res.coord_y, res.zoom, res.type_map show_map_yandex(ll_spn, "map") map_file = "map.png" types = ['map', 'sat', 'sat,skl'] info = '' point_param = '' # Инициализируем pygame looping = True count = types.index(type_map) while looping: for event in pygame.event.get(): if event.type == pygame.QUIT: looping = False if event.type == pygame.MOUSEBUTTONDOWN: if input_box.collidepoint(event.pos): # Toggle the active variable. active = not active else: active = False if clear_buton.collidepoint(event.pos): point_param = '' flag = False show_map_yandex(ll_spn, "map") # Change the current color of the input box. color = color_active if active else color_inactive if event.type == pygame.KEYDOWN: if active: if event.key == pygame.K_RETURN: toponym_to_find = text ll = get_ll_span(toponym_to_find) ll_spn = f"ll={ll}&z={zoom}&l={type_map}" if try_to(ll_spn, "map"): # Показываем карту с масштабом, подобранным по заданному объекту. show_map_yandex(ll_spn, "map") x, y = get_coordinates(text) # Добавляем исходную точку на карту. point_param = f"pt={ll}" print(point_param) show_map_yandex(ll_spn, "map", add_params=point_param) end_text = fond_for_err.render( '', True, (255, 0, 0)) info = get_address(text) flag = True else: end_text = fond_for_err.render( 'Введите корректное имя поиска', True, (255, 0, 0)) text = '' elif event.key == pygame.K_BACKSPACE: text = text[:-1] else: text += event.unicode key = pygame.key.get_pressed() if key[pygame.K_PAGEUP]: zoom = zoom + 1 if zoom + 1 < 20 else zoom ll_spn = f"ll={x},{y}&z={zoom}&l={type_map}" show_map_yandex(ll_spn, "map", add_params=point_param) if key[pygame.K_PAGEDOWN]: zoom = zoom - 1 if zoom - 1 > 0 else zoom ll_spn = f"ll={x},{y}&z={zoom}&l={type_map}" show_map_yandex(ll_spn, "map", add_params=point_param) if key[pygame.K_UP]: y += step * math.pow(2, 15 - zoom) ll_spn = f"ll={x},{y}&z={zoom}&l={type_map}" show_map_yandex(ll_spn, "map", add_params=point_param) if key[pygame.K_DOWN]: y -= step * math.pow(2, 15 - zoom) ll_spn = f"ll={x},{y}&z={zoom}&l={type_map}" show_map_yandex(ll_spn, "map", add_params=point_param) if key[pygame.K_RIGHT]: x += step * math.pow(2, 15 - zoom) ll_spn = f"ll={x},{y}&z={zoom}&l={type_map}" show_map_yandex(ll_spn, "map", add_params=point_param) if key[pygame.K_LEFT]: x -= step * math.pow(2, 15 - zoom) ll_spn = f"ll={x},{y}&z={zoom}&l={type_map}" show_map_yandex(ll_spn, "map", add_params=point_param) if key[pygame.K_HOME]: count = (count + 1) % 3 type_map = types[count] ll_spn = f"ll={x},{y}&z={zoom}&l={type_map}" show_map_yandex(ll_spn, "map", add_params=point_param) # Инициализируем pygame # Рисуем картинку, загружаемую из только что созданного файла. screen.blit(pygame.image.load(map_file), (0, 0)) txt_surface = font.render(text, True, color) # Resize the box if the text is too long. width = max(200, txt_surface.get_width() + 10) input_box.w = width # Blit the text. screen.blit(txt_surface, (input_box.x + 5, input_box.y + 5)) # Blit the input_box rect pygame.draw.rect(screen, color, input_box, 1) pygame.draw.rect(screen, (200, 200, 200), clear_buton) screen.blit( pygame.font.Font(None, 16).render('Сбросить метку', True, (0, 0, 0)), (clear_buton.x + 5, clear_buton.y + 5)) screen.blit(end_text, [350, 430]) if flag: write_info(info) # Переключаем экран и ждем закрытия окна. pygame.display.flip() pygame.display.update() pygame.quit() # Удаляем за собой файл с изображением. os.remove(map_file)
def main(): address_1 = sys.argv[1] address_2 = sys.argv[2] address_1_point = get_coordinates(address_1) address_2_point = get_coordinates(address_2) print(lonlat_distance(address_1_point, address_2_point))
import os import math import pygame from Samples.geocoder import get_coordinates from Samples.mapapi_PG import show_map LON_STEP = 0.01 LAT_STEP = 0.025 if __name__ == '__main__': toponym_to_find = [i for i in input('Что вы хотите найти?').split()] if toponym_to_find: type_map = 'map' ranning = True zoom = 10 lat_M, lon_M = get_coordinates(toponym_to_find) lat, lon = lat_M, lon_M map_file = 'map.png' # Инициализируем pygame pygame.init() screen = pygame.display.set_mode((600, 450)) running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.KEYUP: if event.key == pygame.K_ESCAPE: running = False elif event.key == pygame.K_PAGEUP: