Как программно переместить OpenLayers Vector? - PullRequest
9 голосов
/ 02 декабря 2009

В документации API для OpenLayers.Feature.Vector сказано, что в самом Vector вообще нет методов.

Я знаю, как позволить пользователю перемещать Вектор, добавляя OpenLayers.Control.DragFeature элемент управления на карту. Так что, если пользователь может перемещать Вектор, тогда должен быть способ перемещать его также программно. Но я не могу понять, как это сделать.

Ответы [ 2 ]

12 голосов
/ 02 декабря 2009

Вы перемещаете объект OpenLayers.Feature.Vector , вызывая методы его geometry объекта, а не самого вектора. Эти методы включают перемещение, вращение, изменение размера и преобразование.

Обратите внимание, что вы не найдете никаких методов, определенных в базовом объекте OpenLayers.Geometry, но только в соответствующем дочернем объекте (обратите внимание, что в геометриях OpenLayers существует несколько уровней наследования). OpenLayers.Geometry.Collection является хорошим примером.

Вы можете найти отличный пример программно перемещающихся векторов OpenLayers здесь .

7 голосов
/ 16 мая 2012

Это сработало для меня:

geometry.move(Y_NextPosition - Y_CurrentPosition, X_NextPosition - X_CurrentPosition)
...