10 шокирующих фактов о новой бесплатной альтернативе Geoguessr, которая обходит Google Maps
18 января 2026 г.Вступление
Географические игры давно завоевали сердца любителей путешествий, но их развитие часто тормозится из‑за зависимости от дорогих и закрытых сервисов, таких как Google Maps. Пользователи, желающие попробовать что‑то похожее без подписки, сталкиваются с ограничениями: либо платят за премиум‑доступ, либо мирно живут в ожидании рекламных объявлений. На фоне этой проблемы в Reddit появился пост о проекте Geoguesslite – открытой альтернативе Geoguessr, которая полностью обходит API Google и предлагает бесплатный сервис.
В статье мы разберём, как возникла идея, какие технические решения использованы, что говорят пользователи, и какие выводы можно сделать для будущего геоигр.
Путешествие в тысячу миль начинается с одного шага.
— Японское хокку
Пересказ Reddit‑поста своими словами
Автор поста, известный в сообществе под ником itsspiderhand, объявил о запуске новой версии своей геоигры. В отличие от большинства аналогов, в том числе официального Geoguessr, его проект не использует API Google Maps. Это делает игру более «зеленой» – без лишних расходов на лицензии и без риска закрытия доступа со стороны Google.
Это уже второй проект автора: первый был создан несколько лет назад, но с тех пор он успел выучить новые технологии и решил переписать игру с нуля, сделав её чище и удобнее. Он приглашает всех, кто не хочет платить за подписку, попробовать Geoguesslite и оставить обратную связь.
Ссылка на сайт: https://geoguesslite.com
Исходный код доступен на GitHub: https://github.com/spider-hand/geoguess-lite
Суть проблемы, хакерский подход и основные тенденции
- Зависимость от закрытых API. Большинство геоигр используют Google Maps, что влечёт за собой плату за запросы и ограничения по количеству.
- Открытые альтернативы. Появляются проекты, использующие OpenStreetMap, Mapillary, Mapbox и другие открытые источники.
- Хакерский подход. Автор «взломал» привычный сценарий, заменив закрытый сервис на набор открытых данных, собранных сообществом.
- Тренд к бесплатности. Пользователи всё чаще ищут бесплатные аналоги популярных сервисов, а разработчики – способы монетизировать без навязывания подписки.
Детальный разбор проблемы с разных сторон
Техническая сторона
Google Maps API предоставляет готовые карты, спутниковые снимки и Street View. Однако их использование требует:
- Регистрации проекта в Google Cloud.
- Оплаты за каждый запрос (примерно $7 за 1000 запросов к Street View).
- Соблюдения строгих условий лицензирования.
Эти барьеры отпугивают небольшие команды и хобби‑разработчиков.
Экономическая сторона
Подписка на Geoguessr стоит около $5‑$10 в месяц. Для игроков, которые играют лишь время от времени, это кажется избыточным. Бесплатные альтернативы могут привлечь большую аудиторию, но требуют альтернативных источников дохода (реклама, донаты, платные функции).
Юридическая сторона
Использование открытых данных (OpenStreetMap, Mapillary) обычно регулируется более либеральными лицензиями (ODbL, CC‑BY‑SA). Это упрощает интеграцию, но требует соблюдения условий атрибуции.
Пользовательский опыт
Ключевой фактор – качество изображений. Google Street View предлагает 360° панорамы высокого разрешения. Mapillary, хотя и растёт, иногда имеет разреженные покрытия и разную степень качества. Поэтому разработчики должны балансировать между доступностью и визуальной привлекательностью.
Практические примеры и кейсы
Ниже перечислим несколько реальных сценариев, где открытые карты уже заменяют Google:
- OpenStreetMap в мобильных навигаторах. Приложения OsmAnd и MAPS.ME используют OSM‑данные без ограничений.
- Mapillary в исследовательских проектах. Университеты используют фотографии улиц для анализа городской инфраструктуры.
- Geoguesslite. Пример того, как собрать игру, используя OSM‑карты и фотографии Mapillary, полностью обходя Google.
Экспертные мнения из комментариев
really nice, well done — 2tokens_
Played half an hour by accident lol, it’s quite nice - good job buddy — Daklyrus
Unfortunately, on mobile, swipe to pan is not working. — RatherNerdy
Thanks for the feedback. I will look up the map platform's API and see if there is a way to filter out some types of photos. — itsspiderhand
Awesome work! I'm a big fan of OpenStreetMap, but I never thought of using Mapillary for this! Minor suggestion, I would cap the height/aspect ratio of the map section on desktop screen sizes. Seeing it very tall and skinny looks a bit strange to me. I think you could make the guess button bigger add more vertical padding around it to fill in the extra space. — wcedmisten
Ключевые выводы из комментариев:
- Пользователи ценят бесплатность и «чистый» дизайн.
- Есть проблемы с мобильным интерфейсом (нерабочий свайп).
- Требуется улучшить адаптивность дизайна (соотношение сторон, размер кнопок).
- Сообщество поддерживает использование открытых данных (OSM, Mapillary).
Возможные решения и рекомендации
Технические улучшения
- Оптимизация мобильного взаимодействия. Добавить обработчики touch‑событий, использовать библиотеки Hammer.js или встроенные возможности React Native.
- Адаптивный дизайн. Ограничить высоту карты CSS‑правилом
max-height: 60vh, увеличить кнопку «Угадать» и добавить отступы. - Кеширование изображений. Хранить уже загруженные панорамы в IndexedDB, чтобы уменьшить количество запросов к Mapillary.
Бизнес‑модель
- Ввести добровольные донаты через Patreon или Boosty.
- Разработать премиум‑фичи (например, режим «Турнир» с таблицей лидеров) без ограничения базового доступа.
- Партнёрство с образовательными платформами – использовать игру в курсах географии.
Сообщество и открытый код
- Поощрять вклад в репозиторий: добавить «good first issue», оформить CONTRIBUTING.md.
- Создать канал в Discord для обсуждения багов и новых функций.
- Регулярно публиковать отчёты о покрытии карт (какие регионы уже доступны, какие нет).
Заключение с прогнозом развития
Geoguesslite демонстрирует, что можно построить полноценную геоигру без зависимости от Google. При правильном подходе к UI/UX, кешированию и монетизации проект может стать серьёзным конкурентом коммерческим сервисам. В ближайшие 2‑3 года ожидается рост количества открытых фотопанорам (Mapillary, KartaView), а также улучшение их качества за счёт машинного обучения. Это создаст благоприятные условия для появления новых бесплатных геоигр, а также для интеграции таких сервисов в образовательные программы.
Если разработчики продолжат слушать сообщество, улучшать мобильный опыт и предлагать гибкую бизнес‑модель, то открытые альтернативы могут вытеснить платные сервисы в нише «развлечения + образование».
# -*- coding: utf-8 -*-
"""
Пример простого клиента для получения случайных панорам из Mapillary
и построения ссылки на открытый OSM‑картографический слой.
"""
import requests
import random
import webbrowser
# Константы API
MAPILLARY_TOKEN = "YOUR_MAPILLARY_ACCESS_TOKEN" # замените на ваш токен
MAPILLARY_ENDPOINT = "https://graph.mapillary.com/images"
OSM_URL_TEMPLATE = "https://www.openstreetmap.org/#map=15/{lat}/{lon}"
def fetch_random_image():
"""
Запрашивает случайную панораму из Mapillary.
Возвращает словарь с координатами и URL изображения.
"""
# Параметры запроса: выбираем только публичные изображения,
# сортируем случайным образом, ограничиваем 1 результатом.
params = {
"access_token": MAPILLARY_TOKEN,
"fields": "thumb_original_url,computed_geometry",
"limit": 1,
"sort_by": "captured_at",
"sort_order": "desc"
}
# Получаем список последних изображений
response = requests.get(MAPILLARY_ENDPOINT, params=params)
response.raise_for_status()
data = response.json()
# Если нет изображений – бросаем исключение
if not data.get("data"):
raise RuntimeError("Нет доступных изображений в Mapillary.")
image = data["data"][0]
lat = image["computed_geometry"]["lat"]
lon = image["computed_geometry"]["lon"]
thumb_url = image["thumb_original_url"]
return {"lat": lat, "lon": lon, "thumb_url": thumb_url}
def open_osm_map(lat, lon):
"""
Открывает в браузере OSM‑карту, центрированную на заданных координатах.
"""
url = OSM_URL_TEMPLATE.format(lat=lat, lon=lon)
webbrowser.open(url)
def main():
# Получаем случайную панораму
img_info = fetch_random_image()
print("Координаты изображения: {:.6f}, {:.6f}".format(img_info["lat"], img_info["lon"]))
print("URL миниатюры:", img_info["thumb_url"])
# Открываем карту в браузере
open_osm_map(img_info["lat"], img_info["lon"])
if __name__ == "__main__":
# Точка входа программы
main()
Данный скрипт демонстрирует, как без обращения к Google Maps получить случайную уличную панораму из открытого сервиса Mapillary, вывести её миниатюру и открыть соответствующее место на карте OpenStreetMap. Такой подход может стать базой для создания собственного мини‑клиента геоигры.
Оригинал