#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Создание статической HTML карты с использованием Leaflet и OpenStreetMap Отображает все найденные учебные заведения Челябинской области """ import json import os from pathlib import Path def create_static_map(json_file: str = "chelyabinsk_educational_institutions.json"): """Создает статическую HTML карту с данными из JSON""" # Загружаем данные try: with open(json_file, 'r', encoding='utf-8') as f: data = json.load(f) except FileNotFoundError: print(f"❌ Файл {json_file} не найден!") return None institutions = data.get('institutions', []) total_count = len(institutions) print(f"Создание карты для {total_count} учебных заведений...") # Определяем центр карты (центр Челябинской области) center_lat = 55.1644 center_lng = 61.4368 # Создаем HTML с картой html_content = f""" Карта учебных заведений Челябинской области

🎓 Карта учебных заведений Челябинской области

Университеты, институты, колледжи, техникумы и училища • {total_count} учреждений

{total_count} из {total_count} учреждений

Легенда

Университеты
Институты
Колледжи
Техникумы/Училища
Другие
""" # Сохраняем HTML файл output_file = "chelyabinsk_educational_map_static.html" try: with open(output_file, 'w', encoding='utf-8') as f: f.write(html_content) print(f"✅ Статическая карта создана: {output_file}") return output_file except Exception as e: print(f"❌ Ошибка создания карты: {e}") return None def main(): """Основная функция""" print("=" * 80) print("СОЗДАНИЕ СТАТИЧЕСКОЙ КАРТЫ УЧЕБНЫХ ЗАВЕДЕНИЙ") print("=" * 80) # Проверяем наличие файла с данными json_file = "chelyabinsk_educational_institutions.json" if not os.path.exists(json_file): print(f"❌ Файл с данными {json_file} не найден!") print("Сначала запустите collect_educational_data.py для сбора данных") return # Создаем карту output_file = create_static_map(json_file) if output_file: print(f"\n🎯 Карта готова!") print(f"📁 Файл: {os.path.abspath(output_file)}") print(f"🌐 Откройте файл в браузере для просмотра") # Предлагаем открыть в браузере open_browser = input("\nОткрыть карту в браузере? (y/N): ").strip().lower() if open_browser in ['y', 'yes', 'да', 'д']: import webbrowser try: webbrowser.open(f'file://{os.path.abspath(output_file)}') print("🚀 Карта открыта в браузере!") except Exception as e: print(f"❌ Не удалось открыть браузер: {e}") else: print("❌ Не удалось создать карту") if __name__ == "__main__": main()