#!/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()