Клуб API Карт

Найдено на тему «редактор геометрии»:
Внутренний контур полигона
Sergey S.
28 января 2017, 08:09

Доброго времени суток.

Подскажите пожалуйста, как при редактировании полигона запретить создавать внутренний контур.

2 комментария
полигоны,редактор геометрии
Кастомизация вершин редактора
Швалёв Дмитрий
10 января 2017, 16:45

Очень хочется разобраться с кастомизацией вершин редактора полигона. В документации geometryEditor.Polygon-docpage описаны параметры options.edgeLayout и options.vertexLayout, которые принимают класс макета.

Есть 2 похожие темы:
https://yandex.ru/blog/mapsapi/46436, https://yandex.ru/blog/mapsapi/39780, но они не дают ответа, точнее не получается повторить решения описанные там.

Пробовал передавать созданный templateLayoutFactory:

  var myPolyline = new ymaps.Polyline([
    [55.80, 37.50],
    [55.80, 37.40],
    [55.70, 37.50],
    [55.70, 37.40]
  ], {}, {
    strokeColor: "#00000088",
    strokeWidth: 4,
    editorVertexLayout: ymaps.templateLayoutFactory.createClass('<div class="map-editor-vertex"></div>'),
    editorEdgeLayout: ymaps.templateLayoutFactory.createClass('<div class="map-editor-edge"></div>'),
  });

 или изменять параметр  options:
 

myPolyline.editor.options.set('edgeLayout', ymaps.templateLayoutFactory.createClass('<div class="map-editor-vertex"></div>'));

myPolyline.editor.options.set('vertexLayout', ymaps.templateLayoutFactory.createClass('<div class="map-editor-vertex"></div>'));

Но никакой реакции. Версия API 2.1

Наброски в песочнице: https://jsfiddle.net/dmitry_shvalyov/jfoehhtL/7/

4 комментария
редактор геометрии,geometryEditor.Polygon,editor
Обновление Конструктора Яндекс.Карт
Maps API
3 марта 2016, 15:23

Сегодня мы выпустили новую версию Конструктора Яндекс.Карт. В ней появилась возможность расширенной настройки контента меток.

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

Так же мы обновили редактор геометрий. Изменился не только его дизайн, но и была оптимизирована скорость работы. 

2 комментария
обновление,новости,конструктор,конструктор карт,редактор геометрии,метка с изображением
Режим редактирования для окружностей и прямоугольников.
wotgaid
30 мая 2015, 19:58

Для объектов геозона типа многоугольник и полилиния есть метод который вызывает режим редактирования startEditing(). Для окружностей и прямиогольников в документациии написанно что эти методы ещё не рализованны.

Подскажите как быть, мне необходимо что бы пользователь сам мог вставлять геозоны типа круг и прямоугольник, не могу предумать как это лучше реализовать. Может есть какие то готовые решения ?

1 комментарий
редактор геометрии,API 2.1,круг,прямоугольник
Клик по vertex многоугольника в режиме рисования
Артур Покрашенко
22 мая 2015, 18:50

Здравствуйте.

Могу ли я как-нибудь перехватить клик по одной из вершин полигона в режиме рисования.

В моем случае я хотел бы по клику на первую вершину многоугольника автоматически оставнавливать режим рисования полигона БЕЗ контекстного меню с пунктом «Завершить».

 

Спасибо.

4 комментария
редактор геометрии,API 2.1,события,полигон
Как узнать находится определенный полигон в режиме редактирования?
Sergey Konin
17 апреля 2015, 16:00

Раньше в верси api 1 был метод isDrawing().

Сейчас я не смог найти как определить находится ли определенный полигон в режиме редактирования или нет :(

1 комментарий
редактор геометрии,API 2.1,полигон
Редактировать существующий полигон
kosc@hotkosc.ru
19 декабря 2014, 20:03

Рисую полигон на карте с помощью startDrawing(), сохраняю в БД, при следующей загрузке надо включить режим редактирования полигона по клику на нём. Делаю так:


      polygon.events.add('click', function(e) {
        polygon.editor.startEditing();
      });

Но почему-то текущий полигон клонируется. Как мне просто включить режим редактирования, не создавая нового полигона?

1 комментарий
редактор геометрии,API 2.1,полигон
Кнопка завершения редактирования прямоугольника
test-executive
19 декабря 2014, 18:06

Всем привет.

Подскажите пожалуйста, можно ли по кнопке в меню завершить редактирование polyline?

Так, не выходит :(
           var endDraw = new ymaps.control.Button({            
                         data: {
                            content: 'Завершить рисование',
                        },
                        options: {
                            maxWidth: [150],
                            floatIndex: 4,
                            selectOnClick:false
                        }
        });
        myMap.controls.add(endDraw, {float: 'left'});
        
        endDraw.events.add('click', function (e) { 
            myPolyline.editor.stopEditing();
            myPolyline.editor.stopDrawing();
        });

 

2 комментария
редактор геометрии,API 2.1,события,контролы,ломаная,кнопка,элементы управления
Промежуточные точки в редакторе полигонов
Удалённый пользователь
30 октября 2014, 17:17

Можно ли в редакторе полигонов самому управлять промежуточными точками между вершинами? Мне нужно при перемещении вершины, генерировать несколько промежуточных точек между каждой вершиной.

2 комментария
редактор геометрии,API 2.1,полигон
Рисование линий на карте
megamix012
24 октября 2014, 12:07

Добрый день
Возникла необходимость рисования линий на карте кликами мышью в точках карты.
Нашел работающий пример для YMaps 1.x здесь но для 2.0 написать подобное не получается, консоль выдает ошибку polyline.editor is not a function

Делаю так

 

var searchMap;
    ymaps.ready(function(){
        searchMap = new ymaps.Map("searchMap", {
                center: [55.756514,37.621212],
                zoom: 9
            });
            searchMap.controls.add(
                new ymaps.control.ZoomControl()
            );  
  
           
       // Создание ломаной
            var polyline = new ymaps.Polyline();
             polyline.editor.startEditing();
            // Установка параметров режима редактирования
            polyline.setEditingOptions({
                drawing: true,
                maxPoints: 5
            });

            // Добавление ломаной на карту
            searchMap.addOverlay(polyline);

            // Включение режима редактирования
           
            polyline.editor.startDrawing()

});

 

Подскажите пожалуйста, в чем может быть ошибка?

7 комментариев
редактор геометрии,API 2.1,ломаная
Получение координат многоугольника
Удалённый пользователь
24 июня 2014, 14:56

Добрый день.

Юзер рисует многоугольник:

 

function init () {   
    searchMap = new ymaps.Map('ms', {
                        center: [56.316797,43.987925],
                        zoom: 15
                        }),
                // Создаем многоугольник               
               myPolygon = new ymaps.Polygon([[
                    // Координаты вершин внешней границы многоугольника.
                ]],
              {},
              {
                strokeWidth: 6,
                strokeColor: '#0e6c9b',
                draggable: true
              }               
               
            );
            searchMap.geoObjects.add(myPolygon);
             myPolygon.editor.startDrawing();
             myPolygon.editor.startEditing();
             myPolygon.editor.events.add(['vertexadd'], function(e){
// ???
            });                
}

 

  

Как мне получить координаты многоугольника в ходе редактирования ? (событие установки новой вершины)

15 комментариев
редактор геометрии,события,API 2.0,полигон
(API 2.0) можно ли добавить несколько редактируемых полигонов в одну коллекцию?
AntiMandron
18 июня 2014, 13:04

// инициализирую карту и добавляю на карту коллекцию

...

myMapSearchAreaCollection = new ymaps.GeoObjectCollection();

 

// добавить многоугольную область поиска
function SearchAreaAddPolygon()
{
var myPolygonArea = new ymaps.GeoObject({geometry: {type: "Polygon", coordinates: []}});
// myMap.geoObjects.add(myPolygonArea);
myMapSearchAreaCollection.add(myPolygonArea);
myPolygonArea.editor.startDrawing();
myMapSearchAreaCollection.add(myPolygonArea);
}

можно ли так делать? это надо, чтобы потом одним кликом удалить все редактируемые многоугольники... что-то вроде

myMapSearchAreaCollection.removeAll();

 

или подскажите куда копать, чтобы можно было кнопкой добавить несколько редактируемых полигонов, а другой удалить их все

5 комментариев
коллекция,редактор геометрии,API 2.0,полигон
событие "завершение редактирования многоугольника"
matrix332
22 апреля 2014, 18:45

всем привет!

появился вопрос - как мне отловить событие завершения редактирования многоугольника?

хочу по нажатию кнопки "завершить" вывести координаты всех вершин многоугольника

пожскажите, как это реализовать?

1 комментарий
редактор геометрии,события,API 2.0,полигон
Полигон, как получить доступ к самому полигону из меню?
server1221-1
20 марта 2014, 08:02

Здравствуйте.

Проблема:

... (items, model) {
  items.push({
    title: "Завершить редактирование",
    onClick: function(){
      model.editor.stopEditing();
     
      var points = model.geometry.getCoordinates();
     
      console.log("save: ", points);
    }
  });
}

points == координаты точки по которой щелкнули что открыть меню, а как получить доступ к самому полигону? Ну или ко всем точкам сразу?

4 комментария
редактор геометрии,API 2.0,полигон
Вопросы по событию обновление геометрии
Дмитрий С
2 марта 2014, 22:03

Поясню на примере:

http://jsfiddle.net/GSJVj/3/

 

Есть некий геобъект с привязанным к его координатам html контентом,

неообходимо при смене координат обьекта перемещать и контент.

 

И тут у меня в возникает такая проблема: Если попробовать быстро перетаскивать круг, то в медленном браузере события изменения геометрии pixelgeometrychange как бы запаздывают и не успевают за положением круга, квадратик движется асинхронно с перемещениями центра круга = (

 

Такая проблема возникает только при быстрых перемещениях в медленных браузерах.

 

В стандартном редакторе многоугольника такой проблемы не возникает, там при включенном редактировании и резком перетаскивании обьекта квадратики всегда отображаются на своем месте (в вершинах многоугольника) http://jsfiddle.net/p32G7/1/

 

Что тут делать: необходимо слушать какое-то другое событие, связанное непосредственно с отображением обьекта?

Или что-то другое ?

6 комментариев
редактор геометрии,события,API 2.0,полигон
Точки polyline
Удалённый пользователь
12 февраля 2014, 13:42

Здаравствуйте)

Есть ломаная:

var line = new ymaps.Polyline(arrCoords, {}, {editorMenuManager: function () { myMap.balloon.open([координаты балуна], "_", {}); } });

Как получить координаты вершины ломаной, по которой кликнули? (для того, чтобы в этой вершине и открыть балун)

4 комментария
редактор геометрии,API 2.0,ломаная
vertexdragend - получить координаты вершины
Удалённый пользователь
5 февраля 2014, 12:50

1) Vertexdragend как получить конечные координаты перетаскиваемой вершины

 

myPolyline.editor.events.add(['vertexdragstart'], function(e){
startDragCoord = e.get('target').properties.get('model').geometry.getCoordinates();
console.log(startDragCoord);
});
myPolyline.editor.events.add(['vertexdragend'], function(e){
// Вариант 1
endDragCoord = e.get('target').geometry.getCoordinates();
// Вариант 2
//endDragCoord = e.get('target').properties.get('model').getPixels();
//endDragCoord = myMap.options.get('projection').fromGlobalPixels(endDragCoord, myMap.getZoom())
// Вариант 3
//endDragCoord = e.get('target').properties.get('model').geometry.getCoordinates();
console.log(endDragCoord);
});

 

В варианте 1 при 2х тасканиях:

1. Начало перетаскивания №1 - [55.8, 37.4]

2. Конец перетаскивания №1 - [154.53989149305553, 80.24318011557905]

3. Начало перетаскивания №2 (координаты должны быть = п.2) - [55.762851931823704, 37.32172241210934]

4. Конец перетаскивания №2 - [154.4861805555555, 80.277359803087]

т.е. возвращает непонятный какие-то цифры

Вариант 2

1. Начало перетаскивания №1 - [55.8, 37.4]

2. Конец перетаскивания №1 - [55.79999999999366, 37.39999999999996]

3. Начало перетаскивания №2 (координаты должны быть = п.2) - [55.77291637894876, 37.35468139648434]

4. Конец перетаскивания №2 - [55.77291637894244, 37.35468139648431] 

возвращает какое-то милиметровое смещение

 

Вариант 3

1. Начало перетаскивания №1 - [55.8, 37.4]

2. Конец перетаскивания №1 - [55.8, 37.4]

3. Начало перетаскивания №2 (координаты должны быть = п.2) - [55.730318189710175, 37.279150390624984]

4. Конец перетаскивания №2 - [55.730318189710175, 37.279150390624984]

возвращает начальные координаты, т.е. видимо model изменяется после события vertexdragend

2) Как можно изменить стиль отдельный вершин в ломаной, если задавать через опцию в конструкторе линии editorVertexLayout: то изменятся все вершины, а хочется менять каждую индивидуально. Ещё непонятно почему опции конструктора линии с префиксом editor не описаны в документации и нет никакого упоминания об этом.

3) В режиме рисовани новой вершины за курсором тянется линия, но если наводишь на другую вершину линия пропадает. Можно ли управлять этим поведением?

4) Если есть несколько линий у которых вершина в одной точке, то можно ли тащить (drag) одновременно вершины всех линий? На самом деле первым вопросом я эту задачу и решаю, но отбюросил визуальную часть, т.е. тащим вершину, по завершении (vertexdragend) перерисовываем все линии у которых вершина была в этой точке, но может можно всё-таки как-то решить более красиво.
2 комментария
редактор геометрии,API 2.0,ломаная
как сделать первый "квадратик" ломанной другим цветом
alesha.krivorotoff
5 января 2014, 10:51

возможно ли это?

если да то немогли бы вы написать полный путь к этому свойству. и можно ли в место квадратика задать метку? а то я искал искал через console.log(myPolyline); и ненашол цвет квадратиков(вершин) ломанной. Я имею ввиду квадратики при редактировании лованной

1 комментарий
редактор геометрии,API 2.0,ломаная
Редактирование полигона
Удалённый пользователь
24 декабря 2013, 16:44

Добрый день! 

Есть следующий код:

var map = new ymaps.Map( ... );

var polygon = new ymaps.Polygon([outerBounds, []], {}, {

    editorDrawingCursor: "crosshair",

    fillColor: '#4B0082',

    strokeColor: '#4B0082',

    strokeWidth: 2,

    fillOpacity: 0.2

});

polygon.editor.startEditing();

polygon.editor.events.add(['vertexdragend', 'vertexadd'], function(e){

      console.log(e.get('...'));

});

map.geoObjects.add(polygon);


вопрос: можноли в событиях vertexdragend и vertexadd - как-то получить координаты вершин

1 комментарий
редактор геометрии,координаты,API 2.0,события,полигон
Что происходит с полигоном после удаления последней точки?
Женя Макарова
18 декабря 2013, 13:21

Собственно, сабж. Хотелось бы узнать, что происходит с объектом полигона, когда мы щелкаем по ссылке "удалить" в меню последней вершины. А также каким образом можно повесить обработчик на это событие? Пока что вижу это через обработчик события geometrychange многоу

редактор геометрии,API 2.0,полигон