Änderungssatz - Bereich in JOSM laden

NoScript ist ein Plugin für Firefox mit etlichen Blockierfunktionen, eine davon ist ABE (application boundary enforcer). Die verhindert in der Standardeinstellung (nur “Accept from LOCAL”), dass aus Firefox heraus lokale Anwendungen angesprochen werden können. Das kann man dann bestimmten Seiten explizit erlauben, die erst dann Remote Control in JOSM ansteuern dürfen.

Das ist die typische Firewall-Philosophie: Es ist alles verboten, was nicht explizit erlaubt ist. Bei mir ist auch Javascript zunächst einmal verboten, ich muss es für gewünschte Seiten dann gezielt temporär oder ständig freischalten (whitelist).
Der andere Ansatz ist, alles zu erlauben, außer was blockiert ist (blacklist).
Das ist der uralte Konflikt zwischen Komfort und Sicherheit.

Das lädt aber den kompletten Bereich, jetzt habe ich gerade den Fall, dass ich nur die geänderten Objekte herunterladen will.
Sehe da keine Möglichkeit. Oder hat da jemand ne Idee für?

http://api.osm.org/api/0.6/changeset/1/download
Meinst du das?

Hi seichter,

ich verstehe es noch nicht ganz, habe nun bei ABE unter System eingefügt:

Accept from openstreetmap.org

das tut es aber nicht (tools.geofabrik.de ist ja sicher nur ein Beispiel)

Viele Grüße
Thomas

Versuch’s mal mit “Accept from *.openstreetmap.org”
Eine “Anleitung” versteckt sich übrigens hinter dem Fragezeichen rechts neben “ABE aktivieren” :wink:

Hallo,

bei mir steht nur folgendes hinter dem links ausgewählten SYSTEM-Regelsatz (der USER-Regelsatz enthält nur einen Kommantar):

Site LOCAL
Accept from LOCAL
Deny

Das funktioniert mit allen Seiten - sei es die OSM-Hauptseite, keepright oder OSM-Inspector.

Informative Neujahrsgrüße,
Franz

Also bei mir funktioniert es mit folgender Einstellung:

# Prevent Internet sites from requesting LAN resources.
Site LOCAL
Accept from LOCAL
# Fernsteuerung JOSM freigeben
Site *.openstreetmap.org
Accept from *.openstreetmap.org
Deny

Ohne die Zeile “Site *.openstreetmap.org” funktioniert der Code auch.

Gruß Stephan

Das klappt, danke. Und recht hast Du - wer lesen kann, hat mehr vom Leben :wink: .

Viele Grüße
Thomas

Vom Prinzip her ja, hat nur leider mehrere unangenehme Nebeneffekte, die mir das recht unbrauchbar machen:

  • zum einen lädt der zu jedem einzelnen Node die history (wenn ich die Konsole richtig interpretiere), was bei grossen changesets ne Weile dauert (und den Server unnötig auslastet…)
  • zum anderen markiert der mir alle Punkte als “bearbeitet”. Da steht dann “anonym: -1” in der History.

Ich möchte eigentlich schlicht nur alle in einem Changeset angefassten Objekte haben.

“Accept from .openstreetmap.org” tut es übrigens auch schon: Syntax in http://noscript.net/abe/abe_rules.pdf
Der Bereich unter USER taugt nur zum Syntaxcheck.

Hallo

Die Meldung:
“Der Aufruf des Editors ist fehlgeschlagen. Stelle sicher, dass JOSM oder Merkaartor gestartet ist und die Remote-Control-Option aktiviert ist.”
kommt auch oft vor, wenn man versucht über https Josm anzusprechen:

Im Browser
https://www.openstreetmap.org/changeset/nnnnnnn
in
http://www.openstreetmap.org/changeset/nnnnnnn
umwandeln und dann auf Bearbeiten klicken

Dann musst du nocht das Zertifikat akzeptieren, siehe hier.

Hallo Leute,

ich hatte auch gerade das Problem, mir die Punkte aus einem Änderungssatz zu besorgen. War auf einer Radltour im Altmühltal, Punkte daher natürlich weit verstreut im Bereich Mittelfranken.

Wie nun nur die einzelnen Punkte laden?

Ich habe folgende Lösung gefunden. Den Changeset aufrufen, z.B. einer von mir:

https://www.openstreetmap.org/changeset/24418709

Dann im Firefox mit der rechten Maus in die Seite klicken, Seitenquelltext anzeigen. Im unteren Drittel findet sich nun eine unsortierte Liste:

    <ul>
        <li><a class="node shop hairdresser" href="/node/2985743162" title="shop=hairdresser"><bdi>Hairpalast</bdi> (<bdi>2985743162, v1</bdi>)</a></li>
        <li><a class="node amenity vending_machine" href="/node/2985728489" title="amenity=vending_machine">2985728489, v1</a></li>
        <li><a class="node amenity doctors" href="/node/2985728488" title="amenity=doctors"><bdi>Fuchs-Dessl Elisabeth</bdi> (<bdi>2985728488, v1</bdi>)</a></li>
        <li><a class="node amenity doctors" href="/node/2985743161" title="amenity=doctors"><bdi>Morass Bernhard</bdi> (<bdi>2985743161, v1</bdi>)</a></li>
        <li><a class="node amenity doctors" href="/node/2985728487" title="amenity=doctors"><bdi>Sollerer Gregor</bdi> (<bdi>2985728487, v1</bdi>)</a></li>
        <li><a class="node amenity Teppiche" href="/node/2985743160" title="amenity=Teppiche"><bdi>Orient Teppich Therani</bdi> (<bdi>2985743160, v1</bdi>)</a></li>
        <li><a class="node amenity doctors" href="/node/2985743399" title="amenity=doctors"><bdi>Sprenger Fritz</bdi> (<bdi>2985743399, v1</bdi>)</a></li>
        <li><a class="node amenity doctors" href="/node/2985734444" title="amenity=doctors"><bdi>Aeberli Sonja</bdi> (<bdi>2985734444, v1</bdi>)</a></li>
        <li><a class="node tourism artwork" href="/node/2985743159" title="tourism=artwork"><bdi>Kabinettl</bdi> (<bdi>2985743159, v1</bdi>)</a></li>
        <li><a class="node barrier entrance" href="/node/2985743398" title="barrier=entrance">2985743398, v1</a></li>
        <li><a class="node" href="/node/2985743158" title=""><bdi>Versicherungsbüro Wolf</bdi> (<bdi>2985743158, v1</bdi>)</a></li>
        <li><a class="node amenity Steuerberater" href="/node/2985743157" title="amenity=Steuerberater"><bdi>Kohlbacher Claus, Mag. Rauch Lorenz, Plank Enrico</bdi> (<bdi>2985743157, v1</bdi>)</a></li>
        <li><a class="node shop solarium" href="/node/2965675139" title="shop=solarium"><bdi>City SUN</bdi> (<bdi>2965675139, v2</bdi>)</a></li>
        <li><a class="node shop supermarket" href="/node/2985742562" title="shop=supermarket"><bdi>Öko Insel</bdi> (<bdi>2985742562, v1</bdi>)</a></li>
        <li><a class="node amenity vending_machine" href="/node/2985743156" title="amenity=vending_machine">2985743156, v1</a></li>
    </ul>

Hier nun die Zeilen mit den Listeneinträgen (

  • ) auswählen und kopieren.

    Nun brauchen wir Excel, ein leeres Tabellenblatt.
    Dort die kopierten Listeneinträge ganz oben links (A1) einfügen.
    Bei mir sind nun die Zellen A1 bis A15 mit den Listeneinträgen wie oben gefüllt.

    In Zelle B1 nun folgende Formel einfügen:

    =FINDEN("/node";A1;1)+6
    

    Angezeigt wird “58”.
    Diese Formel bis nach unten in Zelle A15 einfügen.

    In Zelle C1 folgende Formel einfügen:

    =TEIL(A1;B1;FINDEN(" title=";A1;1)-1-B1)
    

    Angezeigt wird “2985743162”, hurra, die ID des ersten Nodes!
    Wieder nach unten bis C15 einfügen.
    Gleich haben wir es!

    In Zelle D1 folgende Formel einfügen:

    =C1
    

    In Zelle D2 folgende Formel einfügen:

    =D1&","&C2
    

    Und diese Formel wieder nach unten bis D15 einfügen.

    In Zelle D15 steht also folgende Formel

    =D14&","&C15
    

    Angezeigt wird jedoch:

    2985743162,2985728489,2985728488,2985743161,2985728487,2985743160,2985743399,2985734444,2985743159,2985743398,2985743158,2985743157,2965675139,2985742562,2985743156
    
    

    Was genau den Nodes im Changeset entspricht, getrennt mit Komma.

    JOSM starten, Eröffnungsbildschirm.
    In Excel die Zelle D15 selektieren, Strg+C für kopieren.

    Nach JOSM wechseln, Datei-Objekt herunterladen und siehe da, bei mir sind die Objekttypen bereits Nodes und bei Objekt-ID stehen alle obigen Punkte fein säuberlich aufgelistet.
    Objekt herunterladen klicken und freuen :smiley:

    Kurze Berichtigung, das obige Beispiel bezieht sich nicht auf die Radltour in Franken, sondern es handelt sich um einige Punkte im Bereich Kufstein, aber egal.
    Ich setze ein paar Kenntnisse in Excel voraus, wenn diese vorhanden sind, dann läuft das selektieren der einzelnen Punkte wunderbar, viel Spass mit den Formeln.

  • Na ja, wenn du es dir so umständlich machen willst. Andere Möglichkeit:

    http://www.openstreetmap.org/api/0.6/changeset/<changeset-id>/download
    

    als *.osc herunterladen und in JOSM öffnen, fertig. :wink:

    edit: Alternativ könnte man auch mit dem Reverter-Plugin arbeiten. Nach dem Revert einfach “Rückgängig” auswählen.

    Genau so mach ist es auch:

    Einfach “so tun” als ob man reverten wollte und das Ganze in einer extra Ebene machen. Dann hat man alle alten Objekte in der einen und alle aktuellen Objekte in der anderen Ebene. Copy/Paste und schwupps sind nur die alten drüben, die man auch haben will :slight_smile:

    Gruss
    walter

    Oh, das is ja geil, muss man ersma drauf kommen … heute mal wieder danach gesucht.

    P.s Sinnvollerweise gibt es eine übelst mächtige Änderungssatzverwaltung, die jeden erdenklichen Krempel kann den man alle Jahre mal brauchen könnte. Nur eins kann sie unerklärlicherweise nicht: bearbeitete Nodes/Ways eines Changesets runterladen.

    Wenn ich das richtig sehe, werden doch so die alten Objekte nicht zurückgeholt, sondern neue erzeugt. Beim Kopieren in JOSM werden doch Objekte mit neuen IDs erzeugt, oder? Insbesondere geht dann so die Historie verloren.

    Statt in einen neuen Layer zu Kopieren, benutzte ich immer “Auswahl aktualisieren”.

    Grüße,
    Micha

    Eben getestet: Ja, du siehst richtig.

    Freundlicherweise bietet die OSM-Website diese URL gleich als Link auf der Änderungssatz-Seite an (“osmChange XML”). Link-Adresse kopieren, in JOSM-Dialog “Adresse öffnen” einfügen, noch schneller fertig.

    Die halsbrecherische Methode mit einem Tabellenkalkulationsprogramm hat aber auch was.

    Den Link auf osm.org kenne ich, daher have ich ihn schließlich. :wink: Dass man ihn aber auch direkt in JOSM öffnen kann, war mir neu. Danke!