Da kannst du ihn nur selber danach fragen. Er hatte es mir angeboten, wegen mangelnder Perlkenntnisse habe ich mich nur über deren technische Umsetzung erkundigt und es dann dabei belassen.
Warum nicht einfach die Bilder unterschiedlicher Auflösung in jeweils eigene Ordner ablegen?
Dann gibst du die Dateien als Ordner_2000/* und Ordner_1000/* an und schon hast du die richtige Reihenfolge.
Alternativ kannst du natürlich vor den Dateinamen jeweils ein “eins_” respektive “zwei_” hängen, wenn es einfacher ist alle Bilder in einem Ordner zu haben.
Na dann. Ist nur für EPSG31469, da ich bisher nichts anderes gebraucht habe.
#! /usr/bin/perl
### This script reads the images from directory $imgDir, sorts them, and
### creates a new shape file in that directory.
use strict;
use warnings;
### The extracted images are expected in this directory.
my $imgDir = "epsg31469";
opendir(my $dh, $imgDir) or die "Can't opendir $imgDir: $!";
my %images;
while (my $file = readdir($dh)) {
if ($file =~ m/\.jgw$/) {
my $filePath = $imgDir."/".$file;
open(my $fd, $filePath) or die "Cannot read file $filePath: $!";
my $meterPerPixel = <$fd>;
$filePath =~ s/jgw$/jpg/;
$images{$filePath} = $meterPerPixel;
close($fd);
}
}
closedir $dh;
my $scriptName = "./run.sh";
open(my $fd, ">", $scriptName) or die "Cannot open run script: $!";
### Delete the old shape file and create a new one.
print $fd "#! /bin/sh\n\nrm $imgDir.sh* $imgDir.dbf\n\ngdaltindex $imgDir.shp \\\n";
foreach my $image (sort {$images{$b} <=> $images{$a}} keys(%images)) {
print $fd " $image \\\n";
}
print $fd " 2>&1 | grep -v \"is already in tileindex. Skipping it.\"\n";
close($fd);
chmod(0755, $scriptName);
### Run the script that we just created.
system($scriptName);
Edit: Ach so, funktioniert erstmal nur unter Unix/Linux wegen /bin/sh, rm und grep. Aber mal ehrlich, wer nimmt denn noch was anderes
Entweder die Datei existiert nicht oder dein Webserver (somit auch “mapserv”, welcher mit den Rechten des Webservers läuft) hat nicht die nötigen Leserechte auf diese Datei und die Verzeichnisse in denen sich diese Datei befindet.
Webserver (z.B. Apache und Lighttpd) laufen üblicherweise unter dem Benutzer www-data.
Also die Datei existiert, und “Andere Benutzer” haben die Rechte read write und execute.
Was ich vermutete war eher dass irgendwo eine Apache Einstellung ist, dass der nicht auf das lokale Dateisystem zugreifen darf.
Um sicher zu gehen, nehme die Identität “www-data” an, führe dazu in der Shell als root “su - www-data” aus, dann überprüfst du (natürlich immernoch als “www-data”, im Zweifel mit “id” überprüfen), ob der Befehl “cat /media/xxx/aerowest/osm.map” (xxx vermutlich ändern) dir den Inhalt der Datei auf dem Bildschirm ausgibt.
Ist das der Fall, dann liegt es nicht an den Dateisystem-Zugriffsrechten.
Jetzt funktioniert es.
Das ganze lag an den fehlenden Zugriffsrechten für das eingebundene Laufwerk, die sich der Änderung aber erfolgreich widersetzt haben.
Jetzt habe ich es auf eine andere Platte kopiert und nach beseitigung anderer noch auftretender Fehler habe ich gerade das erste Aerowestbild in JOSM gesehen.
Im Wiki ist eine Übersicht zu den Aerowest Luftbildern. Dort [1] gibt es auch einen Link, der vorgibt die Abdeckung vom Kreis Wesel darzustellen. Jedoch bekomme ich dort nur eine Werbeseite. Hat sich hier ein Spammer breit gemacht?