2017-02-02 23 views
0

Мне не удалось найти образец кода или что-то в этом духе, чтобы помочь мне закодировать функциональность. Для экспликации в ближайшее время, на карте я добавил 3 функции:ol3 bind feature point и feature type linestring

  • 2 типа точка
  • 1-го типа LineString между обоими я включил способность сопротивления.

Не знаю, возможно ли, я хотел бы привязать непосредственно функцию «точка» к функции «linestring». Я хотел бы перетащить функцию и автоматически перерисовать linestring.

Я уже пытался кодировать «Drag.prototype.handleDragEvent», но я думаю, что латентность не очень хорошая.

+0

Вы ищете прямую линию между двумя точками или неправильной линией, которая следует за курсор? –

+0

Я ищу прямую линию между двумя точками. – Slayes

+0

Тогда я думаю, вам придется подделать ничью. См. Https://jsfiddle.net/jonataswalker/8b322285/ –

ответ

0

Это было легче, чем я думал (изначально). См. demo.

Используйте translating из ol.interaction.Translate, а затем скажите, что текущая координата является последней координатой.

Соответствующий код:

translate1.on('translatestart', function (evt) { 
    coordMarker2 = marker2.getCoordinates(); 
}); 

translate1.on('translating', function (evt) { 
    line.setCoordinates([coordMarker2, evt.coordinate]); 
}); 

translate2.on('translatestart', function (evt) { 
    coordMarker1 = marker1.getCoordinates(); 
}); 

translate2.on('translating', function (evt) { 
    line.setCoordinates([coordMarker1, evt.coordinate]); 
}); 
+0

Спасибо, я не искал с хорошим ключевым словом, я искал с помощью «bind», «attach» ... не думал «переводить», – Slayes