Карта друзей: различия между версиями
Нет описания правки |
Нет описания правки |
||
| Строка 120: | Строка 120: | ||
<p><small>Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»</small></p> | <p><small>Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»</small></p> | ||
</div> | </div> | ||
<h3 style="color: #34495e;">Аналитика собранных данных</h3> | |||
<div style="background-color: #f9f9f9; padding: 15px; border-radius: 10px;"> | |||
<table style="width: 100%; border-collapse: collapse;"> | |||
<tr style="background-color: #3598db; color: white;"> | |||
<th style="padding: 10px; text-align: left;">Показатель</th> | |||
<th style="padding: 10px; text-align: left;">Значение</th> | |||
</tr> | |||
<tr style="border-bottom: 1px solid #ddd;"> | |||
<td style="padding: 8px;">Всего друзей обработано</td> | |||
<td style="padding: 8px;">23</td> | |||
</tr> | |||
<tr style="border-bottom: 1px solid #ddd;"> | |||
<td style="padding: 8px;">Постов с геометками</td> | |||
<td style="padding: 8px;">7</td> | |||
</tr> | |||
<tr style="border-bottom: 1px solid #ddd;"> | |||
<td style="padding: 8px;">Уникальных мест</td> | |||
<td style="padding: 8px;">5</td> | |||
</tr> | |||
<tr style="border-bottom: 1px solid #ddd;"> | |||
<td style="padding: 8px;">Уникальных городов</td> | |||
<td style="padding: 8px;">3</td> | |||
</tr> | |||
<tr style="border-bottom: 1px solid #ddd;"> | |||
<td style="padding: 8px;">Самый популярный город</td> | |||
<td style="padding: 8px;">Москва (4 метки)</td> | |||
</tr> | |||
<tr> | |||
<td style="padding: 8px;">Самый частый тип места</td> | |||
<td style="padding: 8px;">Кафе/рестораны</td> | |||
</tr> | |||
</table> | |||
</div> | |||
<!-- ВЫВОДЫ --> | <!-- ВЫВОДЫ --> | ||
| Строка 131: | Строка 165: | ||
</ul> | </ul> | ||
<p>Проект можно развивать дальше: добавить тепловую карту, сделать анализ популярных мест, подключить Яндекс.Карты с более детальными данными.</p> | <p>Проект можно развивать дальше: добавить тепловую карту, сделать анализ популярных мест, подключить Яндекс.Карты с более детальными данными.</p> | ||
Версия от 09:19, 27 марта 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 социальных сетей и облачных сервисов»
Аналитика собранных данных
| Показатель | Значение |
|---|---|
| Всего друзей обработано | 23 |
| Постов с геометками | 7 |
| Уникальных мест | 5 |
| Уникальных городов | 3 |
| Самый популярный город | Москва (4 метки) |
| Самый частый тип места | Кафе/рестораны |
Выводы
В ходе работы над проектом я:
- Научилась работать с VK API — получать токен, делать запросы, обрабатывать ответы.
- Освоила парсинг JSON-данных и сохранение результатов в файл.
- Создала интерактивную карту на Leaflet и нанесла на нее реальные геоданные.
- Поняла, как устроены современные веб-сервисы, которые собирают данные из разных источников.
Проект можно развивать дальше: добавить тепловую карту, сделать анализ популярных мест, подключить Яндекс.Карты с более детальными данными.



