Pull to refresh
216
0
Владимир Агафонкин @Mourner

User

Send message
Оптимизация таки помогла. :) В FF у меня выигрышь в 17 раз, окошек насчёт «Script not responding» в примере с 50к уже не выскакивает.
Справедливости ради стоит отметить, что на первом скриншоте (с Flickr) для карт используется JS-библиотека Leaflet, от Нокии только данные.
То, что кластеры накладываются, это баг, который будет пофикшен, ну и оптимизировать тоже еще будем. Так что есть шанс, что всё-таки будет работать как надо с 50000. :)
Да, мне даже кто-то писал об этом, спрашивал, стоит ли ему сделать такую сборку. Я согласился, конечно, а человек пропал куда-то и не сделал. :)
Leaflet — всего лишь JS-библиотека. Для прокладывания маршрутов нужен веб-сервис, к примеру, есть HTTP-сервис маршрутов от CloudMade, который можно достаточно просто интегрировать вручную.
Я и на фабрики решился с трудом. :) Не очень мне нравится подход с самовызывающимися конструкторами. Мне как-то спокойнее, когда это происходит явно — так проще понять код, меньше магии.

За запуск инерционности отвечает опция inertiaThreshold. Просто мышь не очень хорошо подходит для таких штук — если установить порог больше, то инерция будет иногда происходит, когда ее не ждёшь, с заметной паузой между движением пользователя и инерционным.

Насчёт плагина — знаем про эту проблему, пока не придумали, как это лучше решить. Наверное в таком случае лучше отключать инерцию.
Использование request/cancelAnimationFrame при обновлении позиции карты.
Для поддержки Google и Yandex Паша Шрамов сделал специальный плагин.
Что касается самого переключения — есть встроенный контрол для этого.
Симпатичный API! Жаль, что опять все усилия дублируются… Не думали раньше взять Leaflet за основу?
Около года пользуюсь Smart Cover, айпад каждый день таскаю в рюкзаке (часто при этом вместе с железяками и проводами, когда езжу на муз. репетиции) и в руках, но задняя крышка почему-то выглядит как новая. :) И даже если появится пару царапин, не обращу на это внимания, т.к. я эту сторону почти и не вижу никогда — на глазах всегда сторона с экраном.
Если написать так, то в браузерах, не поддерживающих Uint8Array, выдаст ошибку. Ее можно было бы исправить, написав window.Uint8Array, но учитывая то, что код писался не только под браузеры, но и под node.js и подобные среды, изначальный вариант самый универсальный.
Переменная undefined минимизируется в одну букву, получается компактнее. :)
Если присмотреться к виду сайта под попапом на скриншоте, видно что они IE7 всё равно особо не поддерживают. А налог за это берут. :)
github, т.к. гугл напрямую почти никогда не открываю — сразу ввожу в адресную строку Хрома запрос.
У Leaflet просто главная идея несколько иная — создать максимально быстрое, простое, удобное, стабильное и гибкое «ядро» с базовыми функциями (карта с тайлами, основные проекции, маркеры, попапы, векторные слои и вся интерактивность), оставив оставив более специфические вещи плагинам. Функции вроде кластеризации намеренно не допускаются в основной код (хотя уже есть как минимум 3 разных сторонних реализации).

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity