Клуб API Карт

Polygon: надпись на фоне, заливка штриховкой, убрать белые квадратики

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

Добрый день. Есть ряд вопросов по работе с многоугольником в API 2.0

 

1) Как можно добавить надпись на фон объекта полигон? Пример "Направление: 51"

2) Как можно добавить всплывающущую подсказку для данного объекта?

3) Можно ли залить штриховкой с различными вариантами наклона?

4) Как убрать белые квадраты у границ многоугольника?

 

Заранее спасибо

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

1. если дословно - сгенерировать картинку фона, в которой будет надпись.

Те взять пиксельные размеры полигона, сгенерировать canvas в этих размерах, написать в нем надпись. Использовать канвас(точнее canvas.toDataURL)  как фоновое изображение, режим stretch.

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/overlay.staticGraphics.Polygon.xml

Подходит не для всех полигонов так как за его пределами заливка обрезается.

2. опция hintContent?

3. Можно. Нарисуйте или сгенерируйте картинку, используйте как фон. Режим tile. Если нужно совместо с пунктом 1 - сгенерируйте картинку со шриховкой

4. Какие квадраты?

вот пример. На границах многоугольников отмечены белые квадраты

[url=http://itmages.ru/image/view/1196729/7a2fa137][img]http://storage6.static.itmages.ru/i/13/0902/s_1378107203_6134980_7a2fa137f3.jpg[/img][/url]

 

Сейчас идет однородная заливка, а я хочу, чтобы там была какая-то надпись.

Есть ли сервисы, которые умеют генироровать картинку по тексту?

 

1. Белые квадраты. У вас включен режим редактирования (editor) выключите его.

2. Сервисов нет. Потому что генерить (нужную надпись) требуется либо на клиенте, либо брать статику с сервера.

Не понимаю почему нет подсказок.

function CreateAnyPolygon(MapObject, GeocodeComposeCode, fillColour, strokeColour, sWidth) {

var objToGeocode = {};

eval(GeocodeComposeCode);

 

myGeometry = {

                    type: 'Polygon',

                    coordinates: [objToGeocode] ,

                  // !!!

                // Свойства.

       properties: {

                             BalloonContent: "тест hintContent", 

                             hintContent: "тест hintContent"         

                             }

                },

                   myOptions = {

               cursor: 'pointer', // вид курсора над объектом                

                    strokeWidth: sWidth, // ширина рамки

                    strokeColor: '#0000FF',

                    outline: true, // Наличие обводки фигуры

                    fill: true, // наличие заливки

                    fillColor: fillColour, // цвет заливки

     opacity: 0.9, // Общая прозрачность (как для заливки, так и для обводки).

       strokeStyle: 'shortdash',  // Стиль обводки.

                    draggable: false,

                    editor: false      // объект можно перемещать, зажав левую кнопку мыши

        };

                

   // Создаем геообъект с определенной (в switch) геометрией.

   var ThePolygon = new ymaps.GeoObject({geometry: myGeometry}, myOptions);

            

       // Размещаем геообъект на карте

       MapObject.geoObjects.add(ThePolygon);

       

       // Запускаем обработку перетаскивания

       //ThePolygon.editor.startEditing();

       

       // !!!

       return ThePolygon;

    }