Клуб API Карт

Я.Карты и SVG

shasoft
23 ноября 2009, 09:35

Хочу иметь возможность самому рисовать через SVG на карте.

Идея такая: создаю слой по размерам на ВСЮ карту текущего масштаба и потом отрисовываю уже на этом слое, преобразовывая geo-точки в пиксельные.

Как это сделать самым простым способом? Чере IOverlay или ILayer, или может ещё что-то есть более удобное?

9 комментариев
Подписаться на комментарии к посту
Вы не поняли суть вопроса. Мне нужно не выводить многоугольники с помощью Я.API.  Я хочу создать div, поместить его на карту и на этом слое рисовать с помощью библиотеки http://raphaeljs.com/

Вы просили подсказать «ещё что-то более удобное». Я подсказал. YMaps.Polygon использует те же технологии, что и Raphaël: SVG и VML. Кроме того, сам переводит геокоординаты в пиксельные. Так в чём принципиальная разница?
Но с помощью YMaps.Polygon нельзя рисовать картинки и линии.

Вообще,на мой взгляд, было бы неплохо ввести такой объект YMap.OverlaySVG
Для линий есть YMaps.Polyline, картинки, да, придётся реализовывать самому (YMaps.IOverlay).
С помощью класса YMaps.Polyline можно рисовать ломаные линии.

Если Вам не хватает возможностей стандартных оверлеев, то Вы можете реализовать интерфейс YMaps.IOverlay и в нем реализовать недостающую функциональность.

А что значит рисовать картинки?
В приведенной мной библиотеке есть какая-то функция для отрисовки картинок.
Почитав документацию, тоже пришел к выводу, что надо делать через YMaps.IOverlay,  так как ILayer данные может запрашивать данные только с сервера.
Тогда вопрос:
а) Как мне определить размер слоя DIV в пикселах, который бы покрывал ВСЮ карту для текущего масштаба?
б) Как позиционировать этот Overlay так, чтобы он перемещался вместе с картой?
Расскажите поподробнее о задаче, которую Вы пытаетесь решить?
Мне нужно отрисовать на карте свою информацию. Есть мнение, что отрисовка в SVG будет меньше тормозить + привязка к API будет не очень большая + удобнее будет программировать (по крайней мере мне)