virtuelles Raster für Übersichtlichkeit

Hallo,

ich möchte ein etwas größeres Gebiet in Ethiopien und Somalia überprüfen und korrigieren. Ich benutze JOSM. Da man bei größeren Sachen öfters den Überblick verliert wäre eine Art virtuelles Raster sehr nützlich, bei dem ich mir notieren kann, welches Gebiet schon bearbeitet wurde. Vergleichbar wie der Tasking Manager von HOT.

Gibt es eine Möglichkeit sowas zu realisieren?
Alternativen?

Danke vorab

Ja siehe: http://wiki.openstreetmap.org/wiki/MapCraft

Du musst im Prinzip in josm die einzelnen Gebiete als geschlossenen Weg ohne Tags eintragen. Dann speicherst du das als osm-Datei ab, meldest dich bei dem Service mit deinem osm-Account an und erstellst den Kuchen. Meine Erfahrung bei der Operation Cowboy in Wyoming hat gezeigt, dass die Kacheln dort etwas groß waren.

Über die Website kannst du dir dann eine Kachel reservieren und den Bereich über Remote ins josm laden.

Wenn du es nur als Hintergrund haben möchtest, dann erstellst du einfach nur die Polygone, speicherst sie lokal ab und lädst sie in eine weitere Datenebene zu deinen Daten, die du bearbeiten möchtest. Dann wird das Raster im Hintergrund dargestellt.

Du kannst auch problemlos die Taskmanger Instanz auf rebuild.poole.ch verwenden, man kann (ich geb zu ich habs nie versucht) auch private Jobs erstellen.

Simon

Moin,

ich benutze einfache Hausmittel:
In JOSM den Kachelnummern-Download im gewünschten Zoombereich und eine einfache Calc-/Excel-Tabelle, in der ich die bearbeiteten Kacheln markiere.

Gruß
Georg

Hi,

es gibt noch

http://osmqa2.qualitystreetmap.org/osmqa/#zoom=1&lat=0&lon=0&layers=BT

vg

Ich habe vor einiger Zeit mal ein Skript für ein Raster gefunden

Das Shell Skript ist dieses hier:

#!/bin/sh

out=gridlines.gpx
echo '<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="" version="1.1"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.topografix.com/GPX/1/1 ">http://www.topografix.com/GPX/1/1/gpx.xsd">
<trk><name>Grid lines</name>' > $out
for i in $(seq -80 80); do
    echo "<trkseg><trkpt lat=\"$i\" lon=\"-179\"></trkpt><trkpt lat=\"$i\" lon=\"180\"></trkpt></trkseg>" >> $out
done
for i in $(seq -179 180); do
    echo "<trkseg><trkpt lat=\"80\" lon=\"$i\"></trkpt><trkpt lat=\"-80\" lon=\"$i\"></trkpt></trkseg>" >> $out
done
echo "</trk></gpx>" >> $out

Die Rasterdatei welche am Ende raus kommt ist diese hier, kann man im JOSM laden: http://pastebin.com/2Mf5ax1P

Zwei Fragen noch dazu:
Kann jemand dieses Skript so abändern, dass die Rastergröße nur halb so groß ist?
Lässt es dieses gpx Format zu, dass man die Quadrate nummeriert, was dann auch in JOSM angezeigt wird?

Ersetze seq -80 80' durch seq -80 .5 80’ und seq -179 180' durch seq -179 .5 180’.

EDIT: Eine schönere Lösung wurde schon gepostet…

Also wenn ich die beiden Sachen in den Schleifen ersetze, also “for i in $(seq -80 .5 80)”; do), bekomme ich als Ausgabe

seq: zusätzlicher Operand »80“
„seq --help“ gibt weitere Informationen.
seq: zusätzlicher Operand »180“
„seq --help“ gibt weitere Informationen.

Und was sagt seq --help oder auch seq --version?

Zum Vergleich:

$ seq --version
seq (GNU coreutils) 8.14
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Ulrich Drepper.

$ seq --help
Usage: seq [OPTION]... LAST
  or:  seq [OPTION]... FIRST LAST
  or:  seq [OPTION]... FIRST INCREMENT LAST
Print numbers from FIRST to LAST, in steps of INCREMENT.

  -f, --format=FORMAT      use printf style floating-point FORMAT
  -s, --separator=STRING   use STRING to separate numbers (default: \n)
  -w, --equal-width        equalize width by padding with leading zeroes
      --help     display this help and exit
      --version  output version information and exit

If FIRST or INCREMENT is omitted, it defaults to 1.  That is, an
omitted INCREMENT defaults to 1 even when LAST is smaller than FIRST.
FIRST, INCREMENT, and LAST are interpreted as floating point values.
INCREMENT is usually positive if FIRST is smaller than LAST, and
INCREMENT is usually negative if FIRST is greater than LAST.
FORMAT must be suitable for printing one argument of type `double';
it defaults to %.PRECf if FIRST, INCREMENT, and LAST are all fixed point
decimal numbers with maximum precision PREC, and to %g otherwise.

Report seq bugs to bug-coreutils@gnu.org
GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>
For complete documentation, run: info coreutils 'seq invocation'

Mit diesem GNU seq 8.14 funktioniert das Skript, wie es soll.

Edit - um die Sache abzukürzen: http://osmac.bplaced.net/gridlines.gpx

Interessanterweise bekomme ich als Output dann die Koordinaten mit Komma, bspw.:

    <trkseg><trkpt lat="-80,0" lon="-179"></trkpt><trkpt lat="-80,0" lon="180"></trkpt></trkseg>

Hab mir das jetzt in der Ausgabedatei ersetzt, wüsste trotzdem gern, was da schiefläuft.

Bonus-problem:
Da ich gern eine noch feinere Unterteilung hätte habe ich jetzt mal versucht, mir anhand des Script ein .de-raster zurechtzufrickeln (damit die Ausgabedatei nicht so riesig wird) und bekomme es nicht hin (josm will es nicht laden)
Kann mir da jemand unter die Arme greifen?

Edit: Ah, ich muss wohl noch
lon=-179\ etc ersetzen … gleich wieder da :wink:

Edit2: Ich bekomme es nicht hin…

Hab geschafft, aber in php getippt. Mit shell hab ichs nicht hinbekommen. Falls jemand Interesse hat:

Grid mit 0,5er Schritten und Nummerierung an den Ecken:

<?php
$out = "phpgrid1.gpx";
$steps = 0.5; //(1, 0.5, ...)

$buff = '<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="" version="1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.topografix.com/GPX/1/1 ">http://www.topografix.com/GPX/1/1/gpx.xsd">\n';
for ($x=-179; $x<=180; $x=$x+$steps)
{
	for ($i=-80; $i<=80; $i=$i+$steps)
	{
		$buff .= "<wpt lat=\"$i\" lon=\"$x\"><name>$i $x</name></wpt>\n";
	}
}

$buff .= '<trk><name>Grid lines</name>\n';

for ($i=-80; $i<=80; $i=$i+$steps)
{
    $buff .= "<trkseg><trkpt lat=\"$i\" lon=\"-179\"></trkpt><trkpt lat=\"$i\" lon=\"180\"></trkpt></trkseg>\n";
    $buff .= "<wpt lat=\"$i\" lon=\"90\"><name>$i</name></wpt>\n";
}

for ($i=-179; $i<=180; $i=$i+$steps)
    $buff .= "<trkseg><trkpt lat=\"80\" lon=\"$i\"></trkpt><trkpt lat=\"-80\" lon=\"$i\"></trkpt></trkseg>\n";

$buff .= "</trk></gpx>";

$buff = str_replace(",", ".", $buff);

$file = fopen($out, "w");
fwrite($file, $buff);
fclose($file);

?>

bzw. dieses hier, wenn man die Quadrate fortlaufend nummeriert haben möchte:

<?php
$out = "phpgrid1.gpx";
$steps = 0.5; //(1, 0.5, ...)

$buff = '<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="" version="1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.topografix.com/GPX/1/1 ">http://www.topografix.com/GPX/1/1/gpx.xsd">\n';
$count=0;
for ($i=-80; $i<=80; $i=$i+$steps)
{
	for ($x=-179; $x<=180; $x=$x+$steps)
	{
		$iz=$i-0.25;
		$xz=$x-0.25;
		$count++;
		$buff .= "<wpt lat=\"$iz\" lon=\"$xz\"><name>$count</name></wpt>\n"; //$i $x
	}
}

$buff .= '<trk><name>Grid lines</name>\n';

for ($i=-80; $i<=80; $i=$i+$steps)
{
    $buff .= "<trkseg><trkpt lat=\"$i\" lon=\"-179\"></trkpt><trkpt lat=\"$i\" lon=\"180\"></trkpt></trkseg>\n";
    $buff .= "<wpt lat=\"$i\" lon=\"90\"><name>$i</name></wpt>\n";
}

for ($i=-179; $i<=180; $i=$i+$steps)
    $buff .= "<trkseg><trkpt lat=\"80\" lon=\"$i\"></trkpt><trkpt lat=\"-80\" lon=\"$i\"></trkpt></trkseg>\n";

$buff .= "</trk></gpx>";

$buff = str_replace(",", ".", $buff);

$file = fopen($out, "w");
fwrite($file, $buff);
fclose($file);

?>

Ein GPX (oder das entsprechende .sh) für .de hat keiner ne zielführende Idee für?

Um nicht den ganzen Thread durchackern zu müssen: Willst du eigentlich nur ein Gitternetz im Josm haben?

Hier steht eine weitere Lösung dafür: https://help.openstreetmap.org/questions/9273/coordinate-lines-in-josm

Gruss
walter

p.s. wenn ich das für mich bräuchte, würde ich meinen MapServer ein transparentes Grid als WMS erzeugen lassen.

Jein, das ist genau die Lösung, die hier auch im Thread besprochen wird. Mein Problem ist, dass ich nicht weiss, wie ich das Script korrekt umschreibe, dass ich nur das Gitternetz für .de bekomme.

So?

#!/bin/sh

out=gridlines.gpx
echo '<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="" version="1.1"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.topografix.com/GPX/1/1 ">http://www.topografix.com/GPX/1/1/gpx.xsd">
<trk><name>Grid lines</name>' > $out
for i in $(seq 46 .5 56); do
    echo "<trkseg><trkpt lat=\"$i\" lon=\"4\"></trkpt><trkpt lat=\"$i\" lon=\"16\"></trkpt></trkseg>" >> $out
done
for i in $(seq 4 .5 16); do
    echo "<trkseg><trkpt lat=\"46\" lon=\"$i\"></trkpt><trkpt lat=\"56\" lon=\"$i\"></trkpt></trkseg>" >> $out
done
echo "</trk></gpx>" >> $out

http://osmac.bplaced.net/gridlines-de.gpx

Sehr schön, danke!

Je nach locale-Setting erzeugt das Script lat/lon-Werte mit Komma statt Punkt als Dezimaltrenner. Von JOSM wird das mit einem “Error: NaN in greatCircleDistance” quittiert. Da fehlt also noch so etwas wie export LC_ALL=C