Клуб API Карт

Скорость работы меток, тянущихся под контент (stretchyIcon) и прочее ворчание

Пост в архиве.

Метки с контентом добавляются на карту весьма и весьма медленно :( 100 меток добавляются около 1.5 сек. в хроме на нормальном компьютере. Соответственно, на нетбуках и в браузерах помедленнее ситуация еще хуже. Можно ли как-то решить эту проблему?

Кроме того, в Фаерфоксе карта с такими метками тормозит при перетаскивании (двигается рывками). Это печально.

А еще метки можно, оказывается, рисовать на canvas, но единственный способ об этом узнать - прочитать комментарий на Хабре. Это тоже печально. Где можно хоть какую-то еще информацию об этом почерпнуть? Или надо читать исходники в лучших традициях OpenLayers?

4 комментария

Растягивающиеся под содержимое иконки сложные - там и верстка сложная и логика определения размера содержимого требует от браузера пару раз напрячься. На моей машине 200 меток добаляются за 1.2 сек. Сделать их быстрее пока не получилось, но у нас есть некоторые идеи на проверку. Возможно что-то удастся улучшить в будущем.

На canvas пока можно добавлять только картиночные метки без содержимого.

Делается это с помощью опции overlayFactory геообъекта. Доступные фабрики оверлеев лежат в неймспейсе geoObject.overlayFactory. Фабрики в документации описаны.

Кроме как из документации, примеров, клуба почерпнуть информацию особо не откуда. Качество доки будет повышаться со временем, будем добалять и примеры.

Доку, конечно же, очень хотелось бы поподробнее. Про geoObject.overlayFactory.interactiveGraphics там написано: "Фабрика интерактивных графических оверлеев." Из этого никаким очевидным образом не следует, что она рисует геообъекты на canvas. :) 

В любом случае, спасибо за ответ и вообще за новый API :)

Из этого вообще никак не следует что рисуется на канвасе.

В любой момент может начать рисовать на SVG или WebGL - но для пользователя это будет прозрачно.

 

есть очень простой способ ускорить эти метки и сделать работу "замечательной"

1*. Создайте метки

2*. Считайте их размеры

3. Создайте теже самые метки со своим лайаутом, со своим текстом и с жестко заранее заданным размером.

4. наслаждайтесь.

Проблема stretchy - маниакальное определение оптимальных размеров.

Если вы там размещаете текст - нужный размер можно расчитать практически на калькуляторе(или просто в неком диве заранее просчитать все размеры на будушее)

 

От тормозов в ФФ может и не спасет - по верстке это относительно сложный обьект, тут нужны канвасные тянущиеся иконки, или иконки на css3(например через border-image\raduis), но это все не сейчас.