JOSM - pluginy

Popatrzyłem kod źródłowy Spline-drawing-tool – to jakiś koszmar, zdaje mi się, że będzie łatwiej napisać nowy plugin, niż zrobić z tego coś naprawdę korzystnego. Mogę sam zrobić możliwość edytowania linii, ale trzeba mi będzie przepisać prawie wszystko. Realizację pierwszej sugestii z wiki (please change Cursor when spline-mode is activated) już wysłałem na github.

Uwaga, ostatnia wersja building_tools - 31095 - przy włączonej opcji ‘Use address nodes under buildings’ zjada adresy - nie pojawiają się one na obrysie.

maraf24, poprawiłem (v31100)

Oto moja wersja spline-drawing-tool: http://wiki.openstreetmap.org/wiki/JOSM/Plugins/Splinex

Ma znaczne odróżnienie od oryginalnej wtyczki: punkty kontrolowe ustawiają się za pomocą click+drag myszą. Jeśli po prostu kliknąć to zjawi się prosta linia, nie krzywa. Potem linię można edytować z pełnoprawnym undo-redo. Za pomocą Ctrl można przesuwać punkty kontrolowe niezależnie jeden od drugiego. Double click – zakończyć. W nastawieniach można ukazać rozdielność.
TODO:

  • Zamknięte krzywe
  • Możliwość usunięcia punktów
  • Angle snapping
  • Adaptive subdivision (różna ilość punktów zależnie od krzywizny)
  • Modeful drawing – zrobić dwa różne tryby dla rysowania i edytowania. Teraz jest tylko Potlach-like interfejs.
  • Możliwość ustawiać punkty kontrolowe bez click+drag
  • Wskazówki w statusbaru

Trochę nie w temacie, ale słowo plugin i JOSM się zgadza. Czasami lubię sprawdzić, czy mamy POI, którego adres jest na stronie internetowej. Wyrzeźbiłem prostą wtyczkę do Chroma, która odpytuje Nominatima dla zaznaczonej frazy i opala w JOSMie pierwszy wynik. Być może komuś się jeszcze przyda. Jeśli ktoś ma pomysły, czy coś można poprawić to jestem otwarty na propozycje :slight_smile:

Link do Chrome Web Store:
https://chrome.google.com/webstore/detail/open-in-josm/hiickojpblidnfamloglimghokglmocj

Może się komuś przyda mimo że podobna funkcjonalność już istnieje we wtyczce bulding_tools. Stworzyłem skrypt który scala adresy. Wystarczy zaznaczyć obrysy np wyszukując w JOSM type:way modified. Do uruchomienia wymaga wtyczki scripting. Można go dostosować do własnych potrzeb i dodatkowych tagów które mogę znajdować się w adresach.

https://gist.github.com/RafalR/6f1b35b6f7b8483cc3b6

Wtyczka zaznaczająca najszybszą drogę pomiędzy zaznaczonymi punktami (w razie potrzeby drogi są przecinane), wagi można zmieniać w ustawieniach. Przydatne przy tworzeniu różnych relacji.
http://vps134914.ovh.net/wyszuk/easy-routes.jar
Proszę o uwagi.

Może jednak lepiej otwierać w OSM, zwykle chce się tylko sprawdzić, a jak ktoś chce coś tam zmienić, to sobie otworzy ulubiony edytor ze strony OSM.
A otwierając od razu w JOSM mocno ograniczasz funkcjonalność wtyczki…

Trochę jestem w kropce, bo wcale nie chcę być królikiem doświadczalnym i wolę używać stabilnej wersji JOSM.
A tu plugin building_tools wymaga nowszej (stabilna: 8491, wymagana: 8549).
Nawet gdybyście mnie zapewnili, że wymagana wersja jest całkiem stabilna, to nie wiem, skąd ją wziąć…

Jak to skąd: https://josm.openstreetmap.de/
Podpowiedź: Latest development version (8601, josm-latest.jar), Ubuntu package repository and other download options. (stosunkowo małym drukiem :wink: ).

Hmm, dokopałem się do katalogu z wersjami i tam po 8547 jest 8558. Wymagana minimalna wersja 8549 nie istnieje.

Wiem, czepiam się, będzie działać z każdą nowszą, ale w ogóle pomysł, żeby jakiekolwiek pluginy (poza oficjalnie eksperymentalnymi) wymagały wersji JOSM nowszej, niż tested, wydaje mi się ryzykowny.

Napiszę dokładniej: na głównej stronie JOSM (cytowanej w moim poprzednim poście) masz ostatnią szarą ramkę - josm-latest.jar można kliknąć i zapisać. Jeśli z jakichś powodów nadal nie możesz znaleźć, to wyszukaj na stronie słowo “latest”.

W katalogu z wersjami są tylko wersje, które były publikowane. Publikacja następuje raz dziennie, więc nie każda wersja, która powstała w repozytorium znajdzie się w tym katalogu.

Co do tego, że może się tak zdarzać, że w repozytorium pluginów jest wersja plugin’a, która wymaga wersji nowszej niż tested - to jest naturalne, gdy wprowadzane są zmiany w JOSM-ie, które nie są kompatybilne wstecz i trzeba poprawić plugin. Problem wydaje się na tyle mały, że nie warto chyba przygotowywać armaty by go rozwiązywać.

Z tym się nie zgodzę. Jeśli zmiana w JOSM niekompatybilna wstecz jest jeszcze wyłącznie w wersji testowej, to zabieranie z repozytorium wcześniejszej wersji plugina, działającej w wersji stabilnej, jest przedwczesne.
I problem nie jest mały - chyba, że CHCEMY, żeby JOSM był “nur für ninja”…

Problem jest w mojej opinii dotyka małej liczby użytkowników, bo tylko tych, którzy tego plugina jeszcze nie ściągneli. Ale jeżeli uważasz, patche zawsze mile widzane.

Czyli wszystkich, którzy spróbują zainstalować stabilną wersję i dociągnąć pluginy.
Oraz używających wersji webowej chyba?

Musiałbym się w końcy tej Javy nauczyć…

Ale nie chodzi o jakiś patch do pluginu, tylko o system, dobierający wersję pluginu do wersji JOSM, który by trzymał w repozytorium wcześniejsze wersje pluginów, jeśli tylko są oparte na innej wersji JOSM, niż nowsze ich wersje, a przy ładowaniu pluginów do JOSM - dobierał najnowszą wersję działającą z używaną przez użytkownika wersją JOSM.

Oraz akurat w pluginie , który chcą ściągnąć dokonano zmiany, która wymaga wersji JOSM-latest. A to, moim zdaniem, tak często się nie zdarza

Wszystkie *jary z pluginami są trzymane w SVN-ie, może nie jest to poindeksowane wersją JOSM-a, ale wiele zachodu nie potrzeba, by po WebDAV-ie wyciągnąć starszą wersję plugina. No i nie chodzi tu o patch do pluginu, tylko o patch do JOSM-a, by takie rzeczy obsługiwał. Natomiast wydaje mi się, że to, że nie zostało to jeszcze zrobione wynika z tego, że problem jest dość znikomy w porównaniu do pracy, która jest do wykonania.

O, fajnie.

Tyle, że o ile jeszcze “SVN” jestem w stanie rozszyfrować, to już przetłumaczenie całości powyższego na “gdzie kliknąć, zeby znaleźć starszą wersję plugina” troszkę mnie przerasta…

Binaria pluginów dostępne są pod adresem:
http://svn.openstreetmap.org/applications/editors/josm/dist/

By wyciągnąć starszą wersję, musisz użyć klienta SVN, np. typu Tortoise SVN (http://tortoisesvn.net/), albo z linii komend w Linuxie. Możesz sprawdzić listę zmian na pliku i po prostu wyciągnąć starszą wersję.

Albo skorzystać z Trac’a OSM do przeglądania kodu:
https://trac.openstreetmap.org/browser/applications/editors/josm/dist

I po wybraniu pliku *jar, wybrać “Dziennik wersji”, dostaniesz stronkę (przykładowo):
https://trac.openstreetmap.org/log/subversion/applications/editors/josm/dist/buildings_tools.jar

I możesz stamtąd ściągnąć starszą wersję plugin’a i skopiować do odpowiedniego katalogu JOSM-a (instrukcja)

Zauważyłem nieoczekiwany efekt dodawania addr:postcode do węzłów miejscowości.
Funkcja “Merge address points” z building_tools traktuje taki węzeł jako adresowy i przy przenoszeniu masowo adresów na budynki (np. poprzez Ctrl-A + Merge adress points), gdy pod węzłem miejscowości pechowo jest budynek, następuje przeniesienie węzła na budynek.