Совместимость 2ГИС с современными браузерами

Разбираем, как 2ГИС в браузерах справляется с WebGL и WebAssembly. Проверяем версии, находим баги и выбираем лучший вариант для навигации!

Сервис 2ГИС (ДваГИС) давно стал неотъемлемым спутником миллионов пользователей в России и странах СНГ. Это не просто карта, а полноценный справочник организаций, навигатор и инструмент для планирования маршрутов. Однако, как и любой современный веб-сервис, 2ГИС постоянно эволюционирует, внедряя новые технологии (WebGL, WebAssembly, Service Workers), что неизбежно влияет на совместимость с различными браузерами и их версиями.

В этой статье мы подробно разберем, как 2ГИС ведет себя в актуальных версиях популярных браузеров, какие проблемы могут возникнуть в устаревших сборках и как обеспечить максимально комфортную работу с сервисом.


Архитектура веб-версии 2ГИС: что под капотом?

Понимание технологического стека помогает осознать системные требования. Современная веб-версия 2ГИС (доступная по адресу 2gis.ru) — это сложное одностороннее приложение (SPA), построенное на следующих технологиях:

  • Рендеринг карты: Используется собственный движок на базе WebGL (через библиотеку MapGL). Это позволяет рисовать векторную карту с 60 FPS, плавно масштабировать, вращать и наклонять вид в 3D.
  • Логика приложения: TypeScript / React (в последних версиях мигрировали с внутренних фреймворков на React для UI-слоя).
  • Офлайн-работа и кэширование: Service Workers (Cache API, IndexedDB) для сохранения тайлов карты, справочника и маршрутов.
  • Геолокация: Geolocation API (с защитой контекста — только HTTPS).
  • Работа с данными: Web Workers для тяжелых вычислений (построение маршрутов, поиск) без блокировки главного потока.

Работа в современных браузерах (Последние 2 мажорные версии)

На момент написания статьи (2024–2025 гг.) к «современным» относятся: Google Chrome 110+, Mozilla Firefox 115+ (включая ESR), Microsoft Edge 110+, Apple Safari 16+ (macOS Ventura / iOS 16), Yandex Browser 23+.

Google Chrome / Microsoft Edge / Yandex Browser (Движок Blink)

Это эталонная платформа для 2ГИС. Команда разработки тестирует релизы в первую очередь на Chromium.

  • Производительность: Максимальная. Аппаратное ускорение WebGL работает стабильно. 3D-здания, плавная анимация перелетов, растеризация векторов, всё летает.
  • PWA (Progressive Web App): Полная поддержка. Можно «установить» 2ГИС как приложение (ярлык на рабочем столе, отдельное окно, иконка в трее/доке). Service Workers корректно кэшируют данные для офлайн-режима.
  • Сенсорный ввод: Отличная поддержка тач-событий (Pointer Events) на трансформерах и планшетах под Windows.
  • WebGPU (Перспектива): В последних версиях Chrome/Edge (флагом или по умолчанию) включается WebGPU. 2ГИС экспериментально тестирует рендеринг на WebGPU для еще большей производительности на современных GPU.

Mozilla Firefox (Движок Gecko / SpiderMonkey)

Полноценная поддержка с версии 115 ESR. Ранние версии (до 100) имели проблемы с производительностью WebGL на некоторых драйверах Windows (проблема ANGLE), но сейчас это решено.

  • Особенность: Firefox строже относится к политике безопасности (COOP/COEP заголовки). Иногда это вызывает проблемы с загрузкой веб-воркеров, если корпоративный прокси/антивирус режет заголовки.
  • PWA: Firefox официально убрал поддержку «установки» PWA в десктопной версии (удален about:config флаг webapp.enable в 2021 г.). 2ГИС работает как обычная вкладка. На Android, полноценная поддержка PWA.
  • Приватность: «Строгая защита от отслеживания» (Strict Tracking Protection) может блокировать загрузку виджетов сторонних сервисов (отзывы, фото из соцсетей), но саму карту и поиск не ломает.

Apple Safari (Движок WebKit)

Ключевой момент: на iOS/iPadOS все браузеры, это оболочки над WebKit. Поэтому поведение 2ГИС в Chrome для iOS, Яндекс для iOS и Safari идентично.

  • Версия 16+: Полная поддержка всех фич: WebGL 2, Service Workers, Web Push API (уведомления о пробках/маршрутах), OffscreenCanvas.
  • Сенсорный интерфейс: Нативная поддержка жестов (пинч-зум, вращение двумя пальцами, наклон тремя). Работает плавнее, чем на Android/Windows за счет жесткой интеграции жестов в ОС.
  • PWA: Поддержка «Добавить в «Начальный экран»» (Add to Home Screen) работает отлично. Приложение открывается в полноэкранном режиме без адресной строки.
  • Проблема памяти: На старых iPhone (6s, SE 1, 7) с 2 Гб ОЗУ Safari может выгружать вкладку при переключении между приложениями, теряя состояние карты (кэш Service Worker спасает тайлы, но состояние JS-приложения теряется).

Safari на macOS (Ventura 13+, Sonoma 14+)

  • Стабильная работа. Есть нюанс с управлением жестами трекпада: нативный «свайп назад/вперед» в Safari иногда конфликтует с навигацией по истории внутри 2ГИС (SPA-роутинг). Разработчики 2ГИС перехватывают popstate, но иногда срабатывает нативный жест браузера.

Работа в устаревших и «проблемных» браузерах

Здесь начинается самое интересное. 2ГИС не блокирует вход со старых браузеров (нет жесткого «Browser Unsupported» экрана), но функционал деградирует.

Internet Explorer 11 (IE11)

Статус: Не поддерживается с 2022 года.

  • Современная версия 2ГИС не загрузится. Вы увидите белый экран или ошибку JS (SyntaxError из-за стрелочных функций, Promise, async/await, деструктуризации).
  • Polyfill.io или core-js не спасут — объем кода и зависимость от WebGL делают IE11 несовместимым принципиально.
  • Решение: Только десктопное приложение 2ГИС (Electron-based) на Windows 7/8.1 (если оно еще запускается) или смена браузера.
  • Нет поддержки Service Workers (появилась только в Edge 17, но с багами), нет WebGL 2, проблемы с IndexedDB.
  • Карта может загрузиться в «режиме совместимости» (растровые тайлы вместо векторов), но 3D, плавный зум и офлайн не будут работать.

Firefox ESR 102 / 91 (еще встречаются в корпоративных средах)

  • Работает, но с оговорками. Поддержка WebGL 2 есть. Service Workers есть.
  • Проблемы с производительностью на интегрированной графике Intel (драйверы Windows + ANGLE в Firefox ESR старых версий).
  • Могут не работать новые CSS-фичи (Container Queries, :has, Cascade Layers), из-за чего UI может «прыгать» или некрасно выглядеть.

Safari 14 / 15 (macOS Big Sur / Monterey, iOS 14 / 15)

  • Критическая проблема: Отсутствие поддержки OffscreenCanvas и частичных API WebGL 2 (например, drawBuffers для deferred rendering).
  • Результат: Рендеринг идет в главном потоке -> просадки FPS при движении карты, нагрев процессора, быстрая разрядка батареи на MacBook/MacBook Air M1/M2 (даже на новых чипах старый Safari не использует GPU эффективно).
  • Нет поддержки Web Push API — уведомления не работают.

Браузеры на старых Android (WebView / Chrome 70-90)

  • Часто встречаются на дешевых панелях навигации, кассовых аппаратах, старых планшетах (Android 7-9).
  • Проблемы: Нет IntersectionObserver v2 (ленивая загрузка фото организаций ломается), баги в IndexedDB (кэш не пишется/читается), нет Web Share API Level 2 (нельзя поделиться местом в нативные приложения).
  • Карта загружается, но поиск и детали фирм могут выдавать ошибки сети.

Режимы деградации функционала (Graceful Degradation)

2ГИС пытается сохранить работоспособность ядра (поиск, просмотр карты) даже в неидеальных условиях:

  1. Фоллбек на растровые тайлы: Если WebGL не инициализируется (черный список GPU, старый драйвер, headless-браузер), 2ГИС может переключиться на загрузку готовых PNG/JPG тайлов (как статичная карта Google Maps 2010 года). Потеряны: 3D, плавный зум, вращение, наклон, динамическая подсветка домов.
  2. Отключение Service Workers: Если браузер в приватном режиме (Incognito/Private) или блокирует сторонние куки/хранилище (Safari ITP, Brave Shields), офлайн-режим и быстрый повторный запуск отключаются. Каждый заход — полная загрузка с сети.
  3. Упрощение UI: На очень старых движках отключаются сложные анимации (Framer Motion / CSS Transitions), заменяются на мгновенное переключение состояний.

Десктопные приложения 2ГИС (Electron) как альтернатива

Если браузер слишком старый (Windows 7, старый Linux дистрибутив) или корпоративная политика запрещает современные браузеры — лучшим решением является установка десктопного клиента 2ГИС.

  • Движок: Electron (Chromium + Node.js). Внутри — та же кодовая база, что и веб-версия.
  • Преимущество: Приложение приносит свой актуальный Chromium. Независимо от версии браузера в системе, 2ГИС будет работать на движке, который был актуален на момент сборки релиза (обычно не старше 6-12 месяцев).
  • Офлайн: Полноценная скачка базы города (файлы .dgdat) — работает без интернета вообще, быстрее веб-версии.
  • Интеграция: Протокол 2gis:// для запуска из других программ (1С, CRM, Excel).

Типичные проблемы и их решение (Troubleshooting)

  • Программный рендеринг (SwiftShader / llvmpipe) вместо GPU.
  • Старый Safari / Firefox без OffscreenCanvas.
  • Открыто слишком много тяжелых вкладок.
  • Симптом Причина (Браузер/Окружение) Решение
    Черный экран вместо карты, в консоли WebGL context lost или Failed to create WebGL context Устаревшие/сломанные драйверы GPU (часто Intel HD Graphics 3000/4000 на Windows 10), отключено аппаратное ускорение в настройках браузера, черный список GPU в Chrome (chrome://gpu). Обновить драйверы видеокарты с сайта производителя (Intel/AMD/Nvidia), а не через Windows Update.
    Включить «Использовать аппаратное ускорение» в настройках браузера.
    Запустить браузер с флагом --ignore-gpu-blocklist (на свой страх и риск).
    Использовать десктопное приложение.
    Карта «дергается», низкий FPS (10-15), нагрев ноутбука Проверить chrome://gpu / about:support (Graphics -> Compositing / WebGL Renderer). Если там SwiftShader или Mesa llvmpipe — проблема в драйверах или блоклисте GPU.
    Не работает «Моя геолокация» (кнопка прицела) Сайт открыт по HTTP (не HTTPS), браузер блокировал запрос разрешения, в ОС отключена геолокация для браузера, корпоративная политика (Group Policy) запрещает Geolocation API. Открыть только по HTTPS (2gis.ru редиректит на HTTPS). Проверить настройки сайта (замочек в адресной строке) -> Геолокация: «Разрешить». Проверить настройки приватности Windows/macOS/Android/iOS.
    Не сохраняется кэш / не работает офлайн / каждый раз качает карту заново Режим Инкогнито / Приватное окно. Настройки «Удалять куки и данные сайтов при закрытии». Антивирус/Клинер (CCleaner, Kaspersky) чистит IndexedDB/Service Worker при закрытии браузера. Safari ITP (Intelligent Tracking Prevention) удаляет хранилище через 7 дней неактивности. Не использовать инкогнито для постоянной работы. Добавить 2gis.ru в исключения очистки куки/данных сайтов в браузере и антивирусе. На iOS — только PWA-версия (с экрана «Домой») гарантирует сохранение кэша дольше 7 дней.
    Ломается верстка: наезжают кнопки, нет шрифтов, белые квадраты вместо иконок Блокировщик рекламы (uBlock Origin, AdGuard) с агрессивными фильтрами режет CSS/Fonts/JS чанки, считая их трекерами. Корпоративный прокси режет .woff2 / .js.map / .wasm файлы. Отключить блокировщик для 2gis.ru. Проверить консоль сети (DevTools -> Network) на наличие заблокированных ресурсов (статус blocked или failed с типом font/script).

    Рекомендации по выбору браузера для 2ГИС в 2024-2025 гг;

    Для обычного пользователя (Windows / macOS / Linux):

    1. Google Chrome / Yandex Browser / Microsoft Edge (последняя стабильная): Лучший баланс скорости, поддержки PWA, синхронизации закладок/истории и стабильности WebGL.
    2. Firefox (последняя / ESR 115+): Отличный выбор, если важна приватность и открытый код. Готовьтесь к отсутствию PWA на десктопе.
    3. Safari (macOS Sonoma / Ventura, iOS 17+): Нативный, самый энергоэффективный вариант на экосистеме Apple.

    Для корпоративной среды (Администраторам IT):

    • Развертывайте MSI-инсталляторы Chrome/Edge/Firefox ESR с политиками автообновления.
    • Добавьте 2gis;ru в Allowlist для куки, JavaScript, Pop-ups, Geolocation, Clipboard API через Group Policy (GPO) / MDM / Intune.
    • Если есть старые терминалы (Thin Clients) на Windows 7/8.1/Linux старых дистрибутивов — ставьте десктопный клиент 2ГИС (версию под соответствующую ОС), не пытайтесь завести веб-версию в старом браузере.
    • Настройте кэширующий прокси (Squid/Nginx) для тайлов карты (tiles.2gis.ru, maps.api.2gis.ru), чтобы экономить внешний трафик — тайлы статичны и хорошо кэшируются.

    Для веб-разработчиков (интеграция виджетов 2ГИС / MapGL API):

    • Тестируйте виджеты в Safari (iOS/macOS) обязательно — WebKit имеет уникальные баги с тач-событиями, скроллом внутри iframe и рендерингом Canvas/WebGL.
    • Проверяйте Content Security Policy (CSP): для работы MapGL нужны директивы script-src 'self' 'wasm-unsafe-eval' ..., worker-src blob: ..., connect-src wss: https: .... Без 'wasm-unsafe-eval' (или хешей/нонсов для wasm) карта не запустится в современных браузерах.
    • Используйте loading="lazy" для iframe-виджетов карты, чтобы не блокировать основной контент страницы.

    Сервис 2ГИС — это передний край веб-технологий в картографии. Команда активно использует WebGL 2, WebAssembly, Service Workers, OffscreenCanvas и современный CSS. Это дает невероятную плавность и функциональность (3D, офлайн, PWA), но ставит жесткие требования к среде выполнения.

    Главные выводы:

    • Современные браузеры (Chrome, Edge, Firefox 115+, Safari 16+, Yandex) — полная поддержка 100% функционала.
    • Браузеры 3-4 летней давности — работают, но без офлайна, PWA, 3D, с просадками производительности.
    • Internet Explorer, старый Edge, Safari < 14 — веб-версия неработоспособна или критически сломана.
    • Универсальное решение для любых проблем с браузером, Десктопное приложение 2ГИС. Оно автономно, быстро и не зависит от версии системного браузера.

    Поддерживайте свои браузеры в актуальном состоянии — это не только про безопасность, но и про комфорт работы с такими сервисами, как 2ГИС.


    Статья актуальна на конец 2024 – начало 2025 года. Технологический стек 2ГИС и требования браузеров могут меняться. Всегда проверяйте официальную документацию api.2gis.ru и страницу поддержки.