Карта друзей: различия между версиями
Нет описания правки |
Нет описания правки |
||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 12: | Строка 12: | ||
<!-- Цель проекта --> | <!-- Цель проекта --> | ||
<h3 style="color: #34495e;">Цель работы</h3> | <h3 style="color: #34495e;">Цель работы</h3> | ||
<p>Разработать инструмент для сбора и визуализации геоданных из открытых источников (VK) с целью изучения принципов работы API и создания интерактивных карт.</p> | <p>Разработать инструмент для сбора и визуализации геоданных из открытых источников (VK) с целью изучения принципов работы [[API]] и создания интерактивных карт.</p> | ||
<!-- Задачи --> | <!-- Задачи --> | ||
| Строка 33: | Строка 33: | ||
<li><b>Хостинг:</b> GitHub Pages (для карты)</li> | <li><b>Хостинг:</b> GitHub Pages (для карты)</li> | ||
</ul> | </ul> | ||
<h3 style="color: #34495e;">Диаграмма работы приложения «Карта друзей»</h3> | |||
{{#mermaid: flowchart TB | |||
A[Начало] --> B(Получение токена VK API) | |||
B --> C(Запрос списка друзей) | |||
C --> D{Есть друзья?} | |||
D -->|Нет| E[Завершить] | |||
D -->|Да| F[Цикл по каждому другу] | |||
F --> G(Запрос последних 30 постов) | |||
G --> H{Пост содержит geo?} | |||
H -->|Нет| I[Следующий пост] | |||
I --> G | |||
H -->|Да| J(Сохранить координаты, имя, место, ссылку) | |||
J --> K{Все посты проверены?} | |||
K -->|Нет| I | |||
K -->|Да| L{Все друзья обработаны?} | |||
L -->|Нет| F | |||
L -->|Да| M(Сохранить данные в JSON-файл) | |||
M --> N(Открыть HTML-страницу с картой) | |||
N --> O(Загрузить JSON в JavaScript) | |||
O --> P(Отрисовать маркеры на карте) | |||
P --> Q(Клик по маркеру → всплывающее окно) | |||
Q --> R[Готово] | |||
}} | |||
<!-- Структура проекта --> | <!-- Структура проекта --> | ||
Текущая версия от 22:50, 22 марта 2026
🗺️ Карта друзей
Автор: Анна Муханова
Группа: АДЭУ-221
Дисциплина: Работа с API социальных сетей и облачных сервисов
Статус проекта: Выполнен
Цель работы
Разработать инструмент для сбора и визуализации геоданных из открытых источников (VK) с целью изучения принципов работы API и создания интерактивных карт.
Задачи
- Изучить документацию VK API.
- Получить токен доступа для работы с данными.
- Написать скрипт на Python для сбора ID друзей и их публичных постов с геометками.
- Сохранить полученные координаты в формате JSON.
- Создать веб-страницу с картой (Leaflet) и нанести на нее точки.
- Опубликовать результат.
Технологии
- Языки: Python, JavaScript, HTML/CSS
- Библиотеки Python: requests, vk_api
- API: VK API, OpenStreetMap (через Leaflet)
- Хостинг: GitHub Pages (для карты)
Диаграмма работы приложения «Карта друзей»
Структура проекта

Файлы проекта: config.py (токен), main.py (скрипт), friends_geo.json (результат), map.html (карта)
Ход работы над проектом
Этап 1. Создание страницы в вики и выбор темы
Создала страницу проекта на Digida MGPU через форму DigitalTool. Тема: «Карта друзей» — сбор и визуализация геолокаций из постов ВКонтакте. Получила комментарий от преподавателя, исправила категорию на «Работа с API».
Этап 2. Изучение VK API и получение токена
Изучила документацию VK API. Пыталась создать приложение, но столкнулась с трудностями. Использовала сервис vkhost.github.io для получения временного токена. Позже разобралась с созданием собственного приложения, получила стабильный токен через standalone-приложение.
Этап 3. Установка библиотеки и написание Python-скрипта
Установила библиотеку vk_api через терминал:
Написала скрипт, который:
- Авторизуется по токену
- Получает список друзей
- Для каждого друга запрашивает последние 30 постов
- Проверяет наличие поля
geoв каждом посте - Сохраняет координаты, имя друга, текст поста и ссылку в JSON-файл
Результат: собрано 18 постов с геометками у 30 обработанных друзей.
Этап 4. Создание интерактивной карты
Создала HTML-страницу с картой на базе библиотеки Leaflet (OpenStreetMap). Написала JavaScript-код, который:
- Загружает данные из JSON-файла
- Разбирает координаты (формат "широта долгота")
- Добавляет маркеры на карту
- При клике на маркер показывает всплывающее окно с именем друга, местом и ссылкой на пост

Результат: готовая интерактивная карта с точками всех найденных геометок.
Этап 5. Создание интерактивной карты
Создала файл map.html с картой на базе Leaflet (OpenStreetMap). Написала JavaScript-код, который загружает данные из JSON и добавляет маркеры на карту. При клике на маркер открывается окошко с именем друга, названием места и ссылкой на пост.



Итог проекта
Создан работающий инструмент для сбора и визуализации геоданных из ВКонтакте
23 друга обработано | 7 геометок собрано | 6 городов на карте
Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»
Выводы
В ходе работы над проектом я:
- Научилась работать с VK API — получать токен, делать запросы, обрабатывать ответы.
- Освоила парсинг JSON-данных и сохранение результатов в файл.
- Создала интерактивную карту на Leaflet и нанесла на нее реальные геоданные.
- Поняла, как устроены современные веб-сервисы, которые собирают данные из разных источников.
Проект можно развивать дальше: добавить тепловую карту, сделать анализ популярных мест, подключить Яндекс.Карты с более детальными данными.



