Ahoj!

Tak jsem si trochu hral s konverzi... a myslim ze uspesne. Data od
Help Service jsou _mooc_ pekna. (I kdyz asi o 100 metru posunuta proti
osm, coz jde snadno opravit).

Konverzni skript je v priloze, vysledek starsi verse je na 

http://atrey.karlin.mff.cuni.cz/~pavel/outgoing/result.osm.bz2

Ten osm vypada zhruba: ... teda pro plny data je posledni way cislo
212605.

Vyhovuje takhle source odkaz?
                                                                Pavel


<?xml version='1.0' encoding='UTF-8'?>
<osm version='0.5' generator='shpupload'>
  <node id="-2" lon="14.669745" lat="50.014165"><tag k="created_by" 
v="shpupload"/><tag k="source" v="HELP SERVICE - REMOTE SENSING spol. s r.o. 
http://www.bnhelp.cz"/></node>
  <node id="-3" lon="14.669612" lat="50.011872"><tag k="created_by" 
v="shpupload"/><tag k="source" v="HELP SERVICE - REMOTE SENSING spol. s r.o. 
http://www.bnhelp.cz"/></node>
  <node id="-4" lon="14.669543" lat="50.010974"><tag k="created_by" 
v="shpupload"/><tag k="source" v="HELP SERVICE - REMOTE SENSING spol. s r.o. 
http://www.bnhelp.cz"/></node>
  ...
<way id='-1056'>
  <tag k="created_by" v="shpupload"/>
  <tag k="highway" v="motorway"/>
  <tag k="name" v="_D1"/>
  <tag k="ref" v="D1"/>
  <tag k="source" v="HELP SERVICE - REMOTE SENSING spol. s r.o. 
http://www.bnhelp.cz"/>
    <nd ref='-1057' />
    <nd ref='-1058' />
    <nd ref='-1059' />
    <nd ref='-1060' />
    <nd ref='-1061' />
    <nd ref='-1062' />
    <nd ref='-1063' />
    <nd ref='-1064' />
    <nd ref='-1065' />
    <nd ref='-1066' />
    <nd ref='-1067' />
    <nd ref='-1068' />
    <nd ref='-1069' />
    <nd ref='-1070' />
</way>
</osm>



                                                                        Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
#!/usr/bin/perl
use Geo::ShapeFile;

open(OUT, ">out.osm");
print OUT "<?xml version='1.0' encoding='UTF-8'?>\n";
print OUT "<osm version='0.5' generator='shpupload'>\n";

open(OUTWAY, ">outway.osm");

$nodeid = -1;
createCoasts("sil_cz12x.shx", 49.996, 14.756, 10.1);

print OUTWAY "</osm>\n";

sub createCoasts(){
  my ($Filename, $Lat, $Long, $Size) = @_;
  $X1 = $Long - $Size;
  $X2 = $Long + $Size;
  $Y1 = $Lat - $Size;
  $Y2 = $Lat + $Size;
  
  
  open(LOG, ">log.txt");
  print LOG "Area $X1 to $X2, $Y1 to $Y2\n";
  
  my $shapefile = new Geo::ShapeFile($Filename);
  printf "%d shapes\n", $shapefile->shapes();

  for(1 .. $shapefile->shapes()) {
    $shapenum = $_;
    my $shape = $shapefile->get_shp_record($shapenum);
    $LastValid = 0;
    print LOG "Shape\n";

    foreach $Point($shape->points()){
      $Long = $Point->X();
      $Lat = $Point->Y();
    
      $InArea = ($Lat > $Y1 && $Lat < $Y2 && $Long > $X1 && $Long < $X2);
        
      if($InArea){
          if (!$LastValid) {
              my %record = $shapefile->get_dbf_record($shapenum);
              print %record;
              print "\n";

              print OUTWAY "<way id='$nodeid'>\n";
              print OUTWAY "  <tag k=\"created_by\" v=\"shpupload\"/>\n";
              $kod = $record{'HSKOD'};
              if (($kod =~ "S1") || ($kod =~ "S1T")) {
                  print OUTWAY "  <tag k=\"highway\" v=\"primary\"/>\n";
              }
              if (($kod =~ "S2") || ($kod =~ "S2T")) {
                  print OUTWAY "  <tag k=\"highway\" v=\"secondary\"/>\n";
              }
              if ($kod =~ "D[DR].*") {
                  print OUTWAY "  <tag k=\"highway\" v=\"motorway\"/>\n";
              }
              if ($kod =~ ".*T") {
                  print OUTWAY "  <tag k=\"tunnel\" v=\"true\"/>\n";
                  print OUTWAY "  <tag k=\"layer\" v=\"-1\"/>\n";
              }



              print OUTWAY "  <tag k=\"name\" 
v=\"$record{'NAZEV'}_$record{'OZNACENI'}\"/>\n";
              print OUTWAY "  <tag k=\"ref\" v=\"$record{'OZNACENI'}\"/>\n";
              if ($record{'POZNAMKA'}) {
                  print OUTWAY "  <tag k=\"note\" 
v=\"$record{'POZNAMKA'}\"/>\n";
              }
              print OUTWAY "  <tag k=\"source\" v=\"HELP SERVICE - REMOTE 
SENSING spol. s r.o. http://www.bnhelp.cz\"/>\n";

            $nodeid--;
          }
          $Node = uploadNode($Lat, $Long);
          printf LOG "Node #%d: %f, %f\n", $Node, $Lat, $Long;

          $LastNode = $Node;
          $CountB++;
          $LastValid = 1;
        }
        else
        {
          if ($LastValid) {
            print OUTWAY "</way>\n"
          }
          $LastValid = 0;
        }
        $CountA++;
        
      }
      if ($LastValid) {
         print OUTWAY "</way>\n"
      }
    }
    print "Uploading $CountB of $CountA\n";
    print LOG "Complete\n";
    close LOG;
    print "Upload complete\n";    

}

sub uploadNode(){
  ($Lat, $Long) = @_;
  $Tags = "<tag k=\"created_by\" v=\"shpupload\"/>";
  $Tags .= "<tag k=\"source\" v=\"HELP SERVICE - REMOTE SENSING spol. s r.o. 
http://www.bnhelp.cz\"/>";
  
  $Node = sprintf("<node id=\"$nodeid\" lon=\"%f\" lat=\"%f\">$Tags</node>", 
$Long, $Lat);
  print OUTWAY "    <nd ref='$nodeid' />\n";
  $nodeid--;
  print OUT "  $Node\n";
  return($response);
}
_______________________________________________
Talk-cz mailing list
Talk-cz@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-cz

Odpovedet emailem