Клуб API Карт

Новый тип линий в картах

vit1251
30 июля 2015, 17:21

Добрый день,

 

Работаю на написанием системы уточняющей маршрут движения и очень нехватает стролок с метаинформацией,

а именно стрелок внутри линии.

 

Что то вроде такого:

|/\|

|/\|

|/\|

 

По этому возник вопрос, а можно ли как-то перекрыть метод отрисовки Polyline? Может быть есть какое-то событие вроде onDraw?

 

Каким способом еще можно решить проблему? Наложенный слой поможет или там придеться генерить изображения?

 

Спасибо.

2 комментария
Подписаться на комментарии к посту

(много букв)

imho это достаточно сложная задача - требуется нарисовать две "линии" - одна фон, а вторая "стрелки".

Сами стрелки, можно попробовать создавать на основе примера из песочницы - переваривать пиксельную геометрию. Хотя пример (если честно) просто ужасен - для большой линии будет создано очень много сегментов, а видны они или нет - там не проверяется.

Но сам принцип в любом случае будет одинаков - вам требуется научиться самому строить геометрию полигонов "инфографики" на основе исходной геометрии линии.

Есть и другой вариант - использовать множесвенные обводки:

 Задать в опции линии не strokeStyle/width..., а одну опцию

stroke: [
{
strokeWidth: 8,
strokeColor: 'red'
},
{
strokeWidth: 4,
strokeColor: '#000',
strokeStyle: {
style:'dash',
generator: function (paths){ //   return paths.map(function(lineSegment){
     return someVertexShader(lineSegment);
   })
}
}
}
],

 Тут сразу будет нарисовано две линии, и на геометрию второй при отрисовке будет наложена некая недокументированная функция "generator". Получает массив массивов координат на вход, тоже самое отдает на выход.

Можно попробовать покуда сделать через нее, и внимательно следить за изменениями АПИ, что публикуются в клубике.