Страница 1 из 1

Рисование и сохранение маршрутов OpenLayers

Добавлено: 29 окт 2012, 23:55
ghaiklor
Привет всем :)
Я полгода занимаюсь с OpenLayers, но всегда возникают вопросы, в которых я слаб. И это один из них. Я надеюсь вы сможете чем-то помочь мне в этом.

Нужно реализовать такой функционал. Пользователь нажимает кнопку "Добавить новый маршрут". На карте он начинает рисовать маршрут, указывая контрольные точки (Остановки). При завершении рисования, он указывает другие параметры этого маршрута (имя, описание и прочее). Как теперь это все можно сохранить в базу? Хотя главный вопрос здесь: "Как реализовать пользовательскую рисовку этого маршрута?"

Заранее благодарю за любую помощь :)

Re: Рисование и сохранение маршрутов OpenLayers

Добавлено: 30 окт 2012, 14:48
selfchief
вы хотите именно маршрут или же просто прямые линии между точками?

Re: Рисование и сохранение маршрутов OpenLayers

Добавлено: 30 окт 2012, 19:05
ghaiklor
Нужен именно маршрут. В этом и сложность. Можно было бы использовать PointTrack или Layer.Vector и на нем геометрию точек выводить, но рисовать каждую точку на дороге - это не тот выход.

Re: Рисование и сохранение маршрутов OpenLayers

Добавлено: 30 окт 2012, 20:19
selfchief
хорошо.
Вот так вот сделать роутинг от CloudMade: http://developers.cloudmade.com/wiki/op ... de_Routing
Как сделаете, думаю поймете как это все сохранять. Если нет, то напишите, что непонятно, сообщество поможет.

Re: Рисование и сохранение маршрутов OpenLayers

Добавлено: 30 окт 2012, 20:23
ghaiklor
Благодарю за помощь :)
Думаю что разберусь со всем этим.

Re: Рисование и сохранение маршрутов OpenLayers

Добавлено: 31 окт 2012, 16:42
ghaiklor
В продолжении этого же вопроса. Зарегистрировал евенты, срабатывают нужные функции в нужное время. После отрисовки маршрута, получаем на выходе объект LineString. Как же теперь его можно сохранить в базу данных, чтобы в случае необходимости можно было его загрузить обратно на карту.
P.S. Эти маршруты могут удалятся с карты, но в нужное время их все равно можно загрузить на нее.

Re: Рисование и сохранение маршрутов OpenLayers

Добавлено: 31 окт 2012, 21:24
selfchief
выложите код, я посмотрю и скорее всего подскажу решение.

Re: Рисование и сохранение маршрутов OpenLayers

Добавлено: 31 окт 2012, 22:13
ghaiklor

Код: Выделить всё

function olBeforeDrawRoute() { //эта функция срабатывает при включении режима рисования
    $('#routes-popup').dialog('close');
    $('#list-routes-div').dialog('close');
    OpenLayersControls['DrawFeatureRoute'].activate(); //это массив созданных контролов на карте
}

function olAfterDrawRoute() { //эта функция срабатывает после окончания рисования на слое
    var layer = OpenLayersTools.Layers.GetLayerByName('Test');
    var test = layer.features[0].geometry; //вот мне нужно как-то сохранить этот тест, я так понял
    layer.removeAllFeatures();
    OpenLayersControls['DrawFeatureRoute'].deactivate();
    $('#list-routes-div').dialog('open');
    $('#routes-popup').dialog('open');
}
События регистрирую вот так:

Код: Выделить всё

layer.events.on({'featureadded': olAfterDrawRoute});

Re: Рисование и сохранение маршрутов OpenLayers

Добавлено: 03 ноя 2012, 15:33
ghaiklor
Все, разобрался. Спасибо за помощь :)
Все оказалось намного проще. Просто переводил геометрию в WKT и обратно с помощью toString, fromWKT.