Offsetpolyline

Z UMP

Wersja z dnia 16:54, 7 lip 2014; Micra (Dyskusja | wkład)
(różn) ← Poprzednia wersja | Aktualna wersja (różn) | Następna wersja → (różn)

Offsetpolyline - skrypt

Narzędzie skryptowe do rysowania linii przesuniętej wobec innej linii o zdefiniowaną odległość (offset, przesunięcie) w wybranym kierunku. Do czego można użyć skryptu? Do rysowania szlaków. Są dwie szkoły rysowania, ale podobno została tylko jedna - wariant szlak obok drogi offset -5, -10, -15 lub +5, +10, +15.

Skrypt znajduje się domyślnie w katalogu .\narzedzia\lua\ jako offsetpolyline.lua. Najlepiej chyba przygotować skrypt dla "swojego" obszaru i umieścić go w katalogu poza drzewem katalogów w ramach UMP, np. w obrębie katalogów MapEdit. Skrypt warto trzymać w wariantach: 0, -5, +5, -10, +10 oraz -15 i +15.

Skrypt działa bardzo sprawnie. Trzeba tylko na początku i na końcu dociąć zgodnie z potrzebami oraz wyedytować właściwości - typ szlaku oraz plik źródłowy. Można też skorzystać z POI oznaczających początek/koniec szlaku pieszego lub rowerowego (0x670x - SZLAK_x lub ROWER_x - na stronie Co-czym).

Parametry skryptu

Parametry są w samym pliku i są to:

  • offsetMeter - przesunięcie wobec drogi zaznaczonej w metrach
  • typszlaku - definicja linii jaka używana jest do rysowania - jest opisana w tablicy w pliku - wystarczy skopiować
  • plikObiektu - nazwa pliku w jakim domyślnie ma się znaleźć nowy obiekt - mając własny skrypt definiujemy statycznie plik, który będzie domyślnym celem.

Problemy

Rysując szlaki lub cokolwiek innego równoległego wobec innej linii (można sobie wyobrazić narysowanie drugiej nitki jezdni w ten sposób) należy pamiętać o:

  • jeżeli szlak ma biec wzdłuż wielu dróg - zaznaczmy wiele dróg z Ctrl - kolejno, tak jak będzie szlak biegł i na tak zaznaczonej grupie obiektów uruchamiamy skrypt - pozostaje docięcie końców zgodnie z potrzebami
  • czasami na łączeniach dróg (na wysokości łączenia) skrypt stawia dwa węzły obok siebie - do usunięcia od razu lub po sprawdzeniu błędów - problem powstaje tylko wtedy, gdy łączymy dwa odcinki narysowane skryptem i końce są minimalnie przesunięte - nic dziwnego, że w wyniku merge powstanie zdublowany punkt
  • jeżeli szlak biegnie pętlami, a drogi biegną dalej - skrypt może fragmentu nie narysować - wtedy pozostaje zaznaczenie tylko tej drogi, użycie na niej skryptu, później docięcie i wykonanie Merge (patrz na poprzednią uwagę)
  • wszystkie zaznaczone linie muszą być ze sobą połączone, tzn. mieć wspólne węzły - brak wspólnych węzłów będzie skutkował komunikatem o błędzie
  • z lewej lub z prawej zależy od zwrotu danej jezdni (kierunku), dlatego warto mieć pod ręką skrypt +n i -n by w razie potrzeby narysować szlak z drugiej strony i zbędny usunąć - jeżeli przypadkowo narysowało się po niewłaściwej stronie drogi to bez zmiany zaznaczenia wykonaj skrypt dla przeciwnej wartości przesunięcia

Autorem skryptu jest aligeza.