как оказалось, рендеринг — очень быстрая штука. а все остальное — уже в кэше.
более того, я еще не сделал частичную перерисовку канваса — сейчас он при движении перерисовывается весь.
При плавном зуме канвас просто пропорционально уменьшается/увеличивается.
Сохранять размер маркера при плавной масштабировании?.. Теоретически, это надо делать в движке. Сначала просчитывать и прорисовывать переходы, а потом их показывать юзеру. Надстройкой над АПИ этого не сделать.
Хотя, я попробую)
10к точек — это 350Кб. На iPad при размере карты в экран помещается 15 тайлов с подложкой (это только при начальной загрузке). каждый тайл — 30кб в среднем — уже 600кБ. Тем более, что это — только начало. Каждое движение карты — это загрузка тайлов. За один сеанс работы с картой вы загрузите никак не меньше 2Мб. Так что 350Кб — это семечки.
это жестко. при каждом движении карты делать запрос к серверу (причем запрос невозможно кэшировать), да еще и мучать mysql запросом с file sort ))
Просто у нас с Вами разные задачи. Я делаю плагин для высоконагруженных приложений с большим количетвом данных.
Спасибо за ссылку. Честно говоря, смешно, когда они называют huge amount of data какие-то 1500 точек. Мой алгоритм кластеризации попроще, но сам метод позволяет показывать больше данных.
Хотя, у нас разные задачи.
Я не фильтрую данные на клиенте. Смысл этого плагина в том, чтобы предоставить возможность просмотра результатовпоиска на карте. Скажем, на сайте недвижимости юзер выбирает параметры поиска в форме, и ему предоставляется возможность посмотреть результаты в виде списка или на карте.
З.Ы. люди могут пользоваться подходом к разработке своих сервисов. готовый плагин мне слишком сложно будет задокументировать и поддерживать.
В следующей статье — 10 опробованных подходов вывода 10000 точек на карту с картинками и работающими примерами для google api 3 и яндекс api 2.
через пару дней. сейчас надо побороть все-таки яндекс апи
Можно, согласен. Именно так я и делал в одном проекте. Можно даже сделать серверную+клиентскую кластеризацию.
То есть сами тайлы кластеризовать на сервере, а на клиенте из прореживать, чтобы маркеры на границах тайлов не «слипались».
Но затраты на серверную кластеризацию все-таки большие, хотя и ее можно кэшировать.
Дайте ссылку на Ваш проект с серверной кластеризацией.
с асинхронной загрузкой не все понятно.
ymaps.ready — можно легко пропустить. может, добавить ymaps.complete?
пришлось писать костыль: if (this.apiLoadAttemps == 0)
{
$('HEAD').append($('
или как в гугле - callback на загрузку.
1. Имелся в виду класс IconStyle — «коробочный».
2. пока нет времени посмотреть, но очень хочется.
3. api.yandex.ru/maps/doc/jsapi/2.x/examples/hint.html
хинт вспывает 1 раз, потом не появляется ни на том же, ни на другом зуме. опера 11.62, хром 18.0.1025.162 m
4. на APIшник возьму что-нить из ректальнокриптографического… узнАю 146%
5. проверю вечером
не нашел функции tileCoordinates.fromPixels — ручками? )
Поздравляю всех карторазрабов!
Первое, что бросается в глаза:
1. возможность использования спрайтов для иконок маркеров
2. все также нет поддержки canvas !(( Каждая точка — 4 DOM-элемента!
3. всплывающая подсказка всплывает только один раз? (потом — тонет? opera 11.62)
4. Клатеризатор — это суперплюс. Буду его сегодня тестировать. Даже догадываюсь, кто его сделал.
5. Если работает touch — то это плюс. наконец-то.
сейчас буду ковырять
еще про яндекс:
1. каждый маркер — 3 div
2. Максимум — 200 точек во вьюпорте
3. круглые точки — без слоя с тенью. то есть когда они друг на друге — тени лежат неправильно.
4. тормозааааа
В яндексовой ссылке:
1. Маркеров мало, они крупные и не дают представления об общем количестве найденного. (можно возразить — там есть окно с указанием полного количества найденного — но это костыль)
2. Кнопка — «перестраивать результаты» — костыль
3. Количество DOM-объектов — около 2500! страница на russia.auto.ru с бОльшим количеством точек — 1600 объектов. (это всего на странице — document.all.length) — отсюда и п1 и п2
4. Маркеры пляшут и мигают
все правильно — canvas — почти все остальное (2-3% на ie <5.5 )
есть много методов.
более того, я еще не сделал частичную перерисовку канваса — сейчас он при движении перерисовывается весь.
При плавном зуме канвас просто пропорционально уменьшается/увеличивается.
Сохранять размер маркера при плавной масштабировании?.. Теоретически, это надо делать в движке. Сначала просчитывать и прорисовывать переходы, а потом их показывать юзеру. Надстройкой над АПИ этого не сделать.
Хотя, я попробую)
Просто у нас с Вами разные задачи. Я делаю плагин для высоконагруженных приложений с большим количетвом данных.
Хотя, у нас разные задачи.
З.Ы. люди могут пользоваться подходом к разработке своих сервисов. готовый плагин мне слишком сложно будет задокументировать и поддерживать.
через пару дней. сейчас надо побороть все-таки яндекс апи
То есть сами тайлы кластеризовать на сервере, а на клиенте из прореживать, чтобы маркеры на границах тайлов не «слипались».
Но затраты на серверную кластеризацию все-таки большие, хотя и ее можно кэшировать.
Дайте ссылку на Ваш проект с серверной кластеризацией.
сорьки
ymaps.ready — можно легко пропустить. может, добавить ymaps.complete?
пришлось писать костыль:
if (this.apiLoadAttemps == 0)
{
$('HEAD').append($('
или как в гугле - callback на загрузку.
2. пока нет времени посмотреть, но очень хочется.
3. api.yandex.ru/maps/doc/jsapi/2.x/examples/hint.html
хинт вспывает 1 раз, потом не появляется ни на том же, ни на другом зуме. опера 11.62, хром 18.0.1025.162 m
4. на APIшник возьму что-нить из ректальнокриптографического… узнАю 146%
5. проверю вечером
не нашел функции tileCoordinates.fromPixels — ручками? )
послал запрос на APIшник. Надеюсь увидеться.
поздравки))
Первое, что бросается в глаза:
1. возможность использования спрайтов для иконок маркеров
2. все также нет поддержки canvas !(( Каждая точка — 4 DOM-элемента!
3. всплывающая подсказка всплывает только один раз? (потом — тонет? opera 11.62)
4. Клатеризатор — это суперплюс. Буду его сегодня тестировать. Даже догадываюсь, кто его сделал.
5. Если работает touch — то это плюс. наконец-то.
сейчас буду ковырять
1. каждый маркер — 3 div
2. Максимум — 200 точек во вьюпорте
3. круглые точки — без слоя с тенью. то есть когда они друг на друге — тени лежат неправильно.
4. тормозааааа
1. Маркеров мало, они крупные и не дают представления об общем количестве найденного. (можно возразить — там есть окно с указанием полного количества найденного — но это костыль)
2. Кнопка — «перестраивать результаты» — костыль
3. Количество DOM-объектов — около 2500! страница на russia.auto.ru с бОльшим количеством точек — 1600 объектов. (это всего на странице — document.all.length) — отсюда и п1 и п2
4. Маркеры пляшут и мигают
все правильно — canvas — почти все остальное (2-3% на ie <5.5 )