2011-11-21 14 views
6

Używam openlayerów i możliwość rysowania linii za pomocą DrawFeature i OpenLayers.Handler.Path. Teraz muszę zapewnić opcję rysowania linii poziomych/pionowych. Oznacza to, że gdy użytkownik zaczyna rysować linię i przesuwa mysz pod kątem, jeśli kąt jest mniejszy niż 45 stopni względem osi x, rysuje tylko poziomo, a jeśli kąt jest większy niż 45 stopni, zacznie rysować pionowe linie.Jak narysować linie poziome w openLayers?

Wszelkie pomysły, jak to zrobić?

Odpowiedz

1

To jest trudne. Domyślam się, że powinieneś jakoś połączyć wiele kontroli

Chciałbym spróbować narysować dwa ukryte wektory w momencie, w którym chcesz rozpocząć rysowanie. Jeden wektor dla osi poziomej i jeden dla pionu. Oczywiście przecinają się w punkcie początkowym

Rzeczywista linia, którą chcesz narysować, powinna przyciągnąć do jednego z tych wektorów. http://dev.openlayers.org/docs/files/OpenLayers/Control/Snapping-js.html

Można spojrzeć na przykładach zrywacza: http://www.openlayers.org/dev/examples/snap-grid.html, http://www.openlayers.org/dev/examples/wfs-snap-split.html

jedyną różnicą jest to, że można tylko wyciągnąć „siatkę” jeśli znasz pochodzenie. Zacznę od przykładu, który zakładam, że tak.