Как рисовать горизонтальные линии в openLayers? - PullRequest
6 голосов
/ 22 ноября 2011

Я использую openlayers и могу рисовать линии, используя DrawFeature и OpenLayers.Handler.Path.Теперь мне нужно предоставить возможность рисовать горизонтальные / вертикальные линии.Это означает, что когда пользователь начинает рисовать линию и перемещает мышь к углу, если угол меньше 45 градусов к оси x, он будет рисовать только по горизонтали, а если угол больше 45 градусов, он начинает рисовать вертикальные линии.

Есть идеи, как это сделать?

1 Ответ

1 голос
/ 26 ноября 2012

Это сложно. Я думаю, вы должны как-то объединить несколько элементов управления

Я бы попытался нарисовать два скрытых вектора в тот момент, когда вы хотите начать рисовать. Один вектор для горизонтальной оси и один для вертикальной. Конечно, они пересекаются в вашей начальной точке

Фактическая линия, которую вы хотите нарисовать, должна привязаться к одному из этих векторов. http://dev.openlayers.org/docs/files/OpenLayers/Control/Snapping-js.html

Вы можете взглянуть на примеры привязки: http://www.openlayers.org/dev/examples/snap-grid.html, http://www.openlayers.org/dev/examples/wfs-snap-split.html

Единственная разница в том, что вы можете нарисовать «сетку», только если знаете источник. Я бы начал с примера, который предполагает, что вы делаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...