Добавить точку в polyline

241
09 февраля 2018, 22:19

Не могу разобраться как добавить точку в уже существующую polyline

function setPolyline(car) {
    var options = {
        //---- Задаем опции геообъекта.
        //---- Цвет с прозрачностью.
        strokeColor: "#FF0000",
        //---- Ширину линии.
        strokeWidth: 4,
        //---- Максимально допустимое количество вершин в ломаной.
        editorMaxPoints: 5000,
        // Первой цифрой задаем длину штриха. Второй цифрой задаем длину разрыва.
        // strokeStyle: '1 5',
        //---- Добавляем в контекстное меню новый пункт, позволяющий удалить ломаную.
        editorMenuManager: function (items) {
            items.push({
                title: "Удалить линию",
                onClick: function () {
                    myMap.geoObjects.remove(myPolyline);
                }
            });
            return items;
        }};
    if ( _storagePolyline[car.car_id] == null ) {
        //---- Хранилище координат
        _storagePolylineCoordinates[car.car_id] = [[car.lat, car.lng]];
        //---- Указываем координаты вершин.
        var myPolyline = new ymaps.Polyline(_storagePolylineCoordinates[car.car_id], {
            hintContent: "Ломаная линия"
        }, options);
        //---- Хранилище линий
        _storagePolyline[car.car_id] = myPolyline;
        //---- Добавляем линию на карту.
        myMap.geoObjects.add(myPolyline);
        //---- Включаем режим редактирования.
        myPolyline.editor.startEditing();
        //---- Включаем режим рисования.
        // myPolyline.editor.startDrawing();
    } else {
        ok = false;
        var len = _storagePolylineCoordinates[car.car_id].length - 1;
        if (_storagePolylineCoordinates[car.car_id][len][0] == car.lat &&
            _storagePolylineCoordinates[car.car_id][len][1] == car.lng ){
            ok = true;
            // console.log(ok);
        }
        if (!ok) {
            console.log(_storagePolyline[car.car_id].geometry);
            _storagePolylineCoordinates[car.car_id].push([car.lat, car.lng]);
            _storagePolyline[car.car_id].setCoordinates(_storagePolylineCoordinates[car.car_id])
            // storagePolyline[car.car_id] = new ymaps.Polyline(storagePolylineCoordinates[car.car_id],{}, options);
        }
    }
}
Answer 1

Используйте метод геометрии setCoordinates().

Вот документация.

READ ALSO
Сохранение Cookie в Safari

Сохранение Cookie в Safari

В safari есть проблема с куками тех сайтов которые пользователь не посещал

194
Как отключить свайп на slick?

Как отключить свайп на slick?

обрый день, есть слайдер, ( управление через стрелки и доты) однако есть же возможность и свайпа на мобильникахКак отключить данную возможость,...

236
как при помощи php сжать pdf файл

как при помощи php сжать pdf файл

Подскажите пожалуйста, можно ли средствами php сжать pdf-файл? На сайт происходит загрузка файлов пользователями и некоторые файлы слишком...

232
Как ограничить выборку из базы?

Как ограничить выборку из базы?

Делаю выборку из базыЕсть две таблицы с товарами и товарными предложениями ( в одной товары , а в другой размеры и цены )

287