Esempio n. 1
0
def show_maps():
    # Параметры позиционирования карты и ее тип.
    map_locations = {
        # "Австралия": ("ll=135.746181,-27.483765&spn=20,20", "sat"),
        "Алматы": ("ll=76.964531,43.242508&z=10", "map")
    }

    for map_location, map_type in map_locations.values():
        show_map(map_location, map_type)
Esempio n. 2
0
def show_spb_route():
    spb_location = "ll=30.097431,59.908131&spn=0.2,0.2"
    route_points = [
        "29.914783,59.891574", "30.105881,59.944074", "30.237944,59.916487",
        "30.266268,59.919073", "30.275489,59.930952", "30.310165,59.941203"
    ]
    line = ",".join(route_points)
    line_param = f"pl={line}"
    show_map(spb_location, "map", add_params=line_param)
Esempio n. 3
0
def show_moscow_stadiums():
    moscow_location = "ll=37.622169,55.750493&spn=0.25,0.25"
    stadiums_location = {
        "Лужники": "37.554191,55.715551",
        "Спартак": "37.440262,55.818015",
        "Динамо": "37.559809,55.791540"
    }
    points = "~".join([pt for pt in stadiums_location.values()])
    points_param = f"pt={points}"
    show_map(moscow_location, "map", add_params=points_param)
Esempio n. 4
0
def show_spb_route():
    # Параметр позиционирования карты.
    spb_location = "ll=30.097431,59.908131&spn=0.2,0.2"

    route_points = [
        "29.914783,59.891574", "30.105881,59.944074", "30.237944,59.916487",
        "30.266268,59.919073", "30.275489,59.930952", "30.310165,59.941203"
    ]

    # Формируем параметр линию.
    line = ",".join(route_points)
    line_param = f"pl={line}"

    show_map(spb_location, "map", add_params=line_param)
def show_moscow_stadiums():
    # Параметр позиционирования карты.
    moscow_location = "ll=37.622169,55.750493&spn=0.25,0.25"

    stadiums_location = {
        "Лужники": "37.554191,55.715551",
        "Спартак": "37.440262,55.818015",
        "Динамо": "37.559809,55.791540"
    }

    # Формируем параметр для рисования точек на карте.
    points = "~".join([pt for pt in stadiums_location.values()])
    points_param = f"pt={points}"

    show_map(moscow_location, "map", add_params=points_param)
Esempio n. 6
0
def main():
    # Параметры позиционирования карты.
    location = "ll=30.097431,59.908131&spn=0.2,0.2"

    # Маршрут для отображения.
    route_points = [
        "29.914783,59.891574", "30.105881,59.944074", "30.237944,59.916487",
        "30.266268,59.919073", "30.275489,59.930952", "30.310165,59.941203"
    ]

    # Формируем параметр для рисования линии.
    line = ",".join(route_points)
    line_param = f"pl={line}"

    # Формируем параметр для рисования метки.
    point = route_points[int(round(len(route_points) / 2))]
    point_param = f"pt={point}"

    # Рисуем карту с линией и меткой.
    show_map(location, "map", add_params="&".join([line_param, point_param]))
Esempio n. 7
0
def main():
    towns = [
        "Ярославль",
        "Нижний Новгород",
        "Казань",
        "Великий Новгород",
        "Архангельск",
        "Саратов",
        "Петрозаводск",
        "Астрахань"
    ]
    random.shuffle(towns)

    for town in towns:
        # Показываем карту с масштабом, подобранным по заданному объекту.
        ll, spn = get_ll_span(town)
        map_type = "sat"
        if random.random() > 0.5:
            spn = "0.001,0.001"
            map_type = "map"
        ll_spn = "ll={ll}&spn={spn}".format(**locals())
        show_map(ll_spn, map_type)
Esempio n. 8
0
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)
Esempio n. 9
0
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')
Esempio n. 10
0
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)
Esempio n. 11
0
        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:
                    #     if zoom > 0:
                    #         zoom -= 1
                if event.type == pygame.MOUSEBUTTONUP:
                    if event.button == 4 and zoom < 23:
                        zoom += 1
                    elif event.button == 5 and zoom > 0:
                        zoom -= 1
            ll_spn = f'll={lat},{lon}&z={zoom}'
            point_param = f'pt={lat},{lon}'
            show_map(ll_spn, 'map', point_param)
            screen.blit(pygame.image.load(map_file), (0, 0))
            pygame.display.flip()
        pygame.quit()

        # Удаляем за собой файл с изображением.
        os.remove(map_file)

    else:
        print('Нет данных')
Esempio n. 12
0
from Samples.geocoder import get_ll_span
from Samples.mapapi_PG import show_map
coords = input('Введите координаты через запятую без пробела: ')
ll, spn = get_ll_span(coords)
show_map(f'll={ll}&spn={spn}')
Esempio n. 13
0
from Samples.mapapi_PG import show_map

LON_STEP = 0.01
LAN_STEP = 0.025
print('Что вы хотите найти?')
t = input()
gl = 'map'

if __name__ == '__main__':
    toponym_to_find = t
    if toponym_to_find:
        zoom = 15
        lat, lon = get_coordinates(toponym_to_find)
        ll_spn = f'll={lat},{lon}&z={zoom}'
        point_param = f'pt={lat},{lon}'
        show_map(ll_spn, 'map')
    else:
        print('Нет данных для поиска')

    map_file = 'map.png'
    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
Esempio n. 14
0
                        type_map = 'map'
                    elif event.key == pygame.K_2:
                        type_map = 'sat'
                    elif event.key == pygame.K_3:
                        type_map = 'sat,skl'
                if event.type == pygame.MOUSEBUTTONUP:
                    if event.button == 4 and zoom < 23:
                        zoom += 1
                    elif event.button == 5 and zoom > 0:
                        zoom -= 1
                if lon > 85:
                    lon = 85
                if lon < -85:
                    lon = -85
                if lat > 180:
                    lat = 180
                if lat < -180:
                    lat = -180
            ll_spn = f'll={lat},{lon}&z={zoom}'
            point_param = f'pt={lat_M},{lon_M}'
            show_map(ll_spn, type_map, point_param)
            screen.blit(pygame.image.load(map_file), (0, 0))
            pygame.display.flip()
        pygame.quit()

        # Удаляем за собой файл с изображением.
        os.remove(map_file)

    else:
        print('Нет данных')
Esempio n. 15
0
def show_maps():
    map_locations = {
        "Австралия": ("ll=135.746181,-27.483765&spn=20,20", "sat")
    }
    for map_location, map_type in map_locations.values():
        show_map(map_location, map_type)