1

Масштабирование карты в Wialon на Macbook

Topic: Масштабирование карты в Wialon на Macbook

Записал 2 видео для сравнения.
1) На родном сайте Google Maps видим, что масштабирование очень плавное, практически одновременно с движением.
2) А масштабирование в Wialon тормознутое, с задержкой и ощущения очень неприятные, а ведь в полях часто приходится работать именно с маком и его чудесным тачпадом, который в большинстве приложений полноценно заменяет мышь. Можно ли что-то с этим сделать?

2

Масштабирование карты в Wialon на Macbook

Re: Масштабирование карты в Wialon на Macbook

чтоб я так жил ... )

3

Масштабирование карты в Wialon на Macbook

Re: Масштабирование карты в Wialon на Macbook

Основное отличие в двух картах на видео в том, что на сайте они используют векторный формат карт, а в Wialon используются тайлы.
Аналогичное поведение в двух системах можно будет ожидать, когда Wialon будет поддерживать работу с векторными картами и они станут доступны по API у основных картопровайдеров. Думаю, это неизбежно, но не в самом длижайшем времени.

Tatsiana Kots
Ex-Business Analyst, Gurtam
4

Масштабирование карты в Wialon на Macbook

(edited by darkpal 06/12/2019 02:30:20)

Re: Масштабирование карты в Wialon на Macbook

tata Дело не в типе карт. После прочтения вашего сообщения, я протестировал различные картографические сервисы, в том числе карты с тайлами, в частности OpenStreetMap. В разных сервисах прокрутка с помощью тачпада Macbook работает по-разному, в некоторых хуже, в некоторых лучше - где-то есть задержки и ступенчатое масштабирование, где-то всё очень плавно. А вот как, например, работает масштабирование в Яндекс.Картах:


Видим, что вся карта не прогружается в моменты непрерывного масштабирования в угоду плавности и понимания пользователем масштаба, на котором ему нужно остановиться для желаемой детализации.
Если говорить о Wialon, то независимо от типа карт, зумирование работает одинаково. В итоге я пришел к выводу, что всё дело в JavaScript обвязке, которая касается вот этого элемента https://drive.google.com/file/d/1-AhnGV … p=drivesdk

Мой личный рейтинг карт по плавности прокрутки:
1) Apple Maps, Google Maps
2) Yandex Maps, Bing Maps
3) 2GIS
4) Openstreet Maps, Visicom Maps
5) Wialon (any maps)
6) WikiMapia
7) Luxena Maps, Gurtam Maps Demo

Записал видео демо Gurtam Maps. Вы извините, но кроме как убожеством это назвать по-другому язык не поворачивается.

Я не знаток JavaScript, но может стоит увидеть комментарий разработчика? Я не единственный и думаю далеко не первый, кто поднимал подобные вопросы. Вот, например, человек не только описывает проблему, но и предлагает некие попытки решения в виде кода https://stackoverflow.com/questions/563 … i-possible

5

Масштабирование карты в Wialon на Macbook

Re: Масштабирование карты в Wialon на Macbook

darkpal wrote:

Я не знаток JavaScript, но может стоит увидеть комментарий разработчика?

Действительно, «дело не в типе карт» (хотя и векторные всегда плавные по умолчанию). Векторные карты, конечно, намного технологичнее и позволяют их масштабировать «внутрь» без потери качества (теряется только детализация, пока не прогрузятся данные), но это вряд ли даёт само ощущение плавности.

Дело скорее в движке отрисовки этих карт. Который обрабатывает все события скроллинга и нужным образом масштабирует тайлы, чтобы всё выглядело плавно.

В случае векторных карт существуют дробные зумы, на которых можно останавливаться после скроллинга. Растровые так же можно масштабировать до дробных зумов, но после окончания скроллинга всё равно нужно прыгнуть к ближайшему целому зуму, иначе всё будет размазано настолько, что никто не захочет полностью плавного зумирования. Что несколько снижает плавность (если сделать небольшой перерыв между скроллингом, то карта резко скакнёт), но не критично.

Если открыть Gurtam Maps в виалоне и скроллить даже без тачпада, а просто кнопками смены зума на один, то будет видно, что после смены зума оно зачем-то показывает белый экран, а затем загружает новые тайлы. Хотя должно было растянуть старые, загружать новые и затем заменить старые новыми. С мобильника карты довольно неплохо растягиваются, но после отпускания тоже уходят в мерцающую перезагрузку.

Если открыть Google Maps в виалоне и скроллить с мобильника, то видно, что этот слой в виалоне в принципе не поддерживает дробный скроллинг и просто зумит по одному уровню. Что неправильно, т.к. сами встраиваемые гугл-карты это умеют.

Всё так происходит (в основном с гугл-картами) из-за того, что виалон (и пользователь) не работает с самими js sdk карт напрямую, а использует посредника в виде OpenLayers 2 (активная разработка которого завершилась примерно в 2013 году), который перехватывает действия пользователя и затем передаёт их добавленным на карту слоям, унифицировав их, в процессе чего, например, гугл вообще не знает, что происходит дробный зуминг (по крайней мере наша текущая реализация). Так же, с момента внедрения OL2, он был многократно адаптирован под нужды виалона, в процессе чего что-то, возможно, было сломано (мерцание тайлов), а что-то и не поддерживалось никогда в данном движке.

Некоторые вещи, вроде мерцания тайлов, скорее всего могут быть исправлены относительно небольшими затратами, ибо в чистом OL2 они не мерцают, это наш косяк. Но некоторые, вроде достижения Абсолютной Плавности™, крайне трудозатратны. Ибо для этого либо придётся пытаться улучшить то, что у нас есть сейчас, что абсолютно непредсказуемо ни по времени, ни по результату (если вдруг выяснится, что из-за каких-то фундаментальных ограничений OL2 просто невозможно сделать так, как хочется), либо целиком поменять движок на новый, который уже умеет зумить плавно. Что потащит за собой переделку всех поддержаных виалоном слоёв (более 30 различных реализаций), все маркеры на карте, геозоны, треки, прочую геометрию, все инструменты работы с картой, все модули, которые каким-либо образом работают с геоданными и завязались на OL2.

Если было бы возможным просто написать doEverythingSmooth: true, либо только немного переписать одну функцию обработки скроллинга — я бы так и сделал. Но, к сожалению, одно цепляется за другое и это не получается так просто sad

Плавность и эстетический комфорт использования карт в Wialon однозначно будет проапгрейжен, но когда — мне неизвестно.

Wialon Hosting Frontend
6

Масштабирование карты в Wialon на Macbook

Re: Масштабирование карты в Wialon на Macbook

rual wrote:

Плавность и эстетический комфорт использования карт в Wialon однозначно будет проапгрейжен, но когда — мне неизвестно.

Спасибо за полный, исчерпывающий ответ. Ценность таких ответов прежде всего в том, что интегратор хотя бы знает, что разработчик в курсе проблемы и даже есть некоторые мысли хотя бы по частичному её решению. Надеюсь что это "когда" будет не за горами, как бывает у других вендоров, где годами (а иногда десятилетиями) не фиксятся болезненные баги.