summaryrefslogtreecommitdiff
path: root/navit/script
diff options
context:
space:
mode:
authorlatouche <latouche@ffa7fe5e-494d-0410-b361-a75ebd5db220>2009-03-15 14:58:02 +0000
committerlatouche <latouche@ffa7fe5e-494d-0410-b361-a75ebd5db220>2009-03-15 14:58:02 +0000
commit79f03ecaba5a0a12f07318ba601bba90ba305a5f (patch)
tree6afefeb7ccf0cf96d791c1441e94a9a7ac8145b4 /navit/script
parentdac61f50239ade93d62373ce5700dd0a4fe0a700 (diff)
downloadnavit-79f03ecaba5a0a12f07318ba601bba90ba305a5f.tar.gz
script:osm2navit_sea:does not round anymore the width and height of the bounding box to a multiple of 0.5
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@2122 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/script')
-rw-r--r--navit/script/osm2navit_sea/osm2navit_sea.pl38
1 files changed, 21 insertions, 17 deletions
diff --git a/navit/script/osm2navit_sea/osm2navit_sea.pl b/navit/script/osm2navit_sea/osm2navit_sea.pl
index b284bce08..cac301c20 100644
--- a/navit/script/osm2navit_sea/osm2navit_sea.pl
+++ b/navit/script/osm2navit_sea/osm2navit_sea.pl
@@ -385,7 +385,7 @@ sub polygon_contains_node {
print "initialising tiles\n";
-debug("there will be ".ceil(abs($maxlong2-$minlong2)/0.5)."x".ceil(abs($maxlat2-$minlat2)/0.5)." tiles\n");
+print "There will be ".ceil(abs($maxlong2-$minlong2)/0.5)."x".ceil(abs($maxlat2-$minlat2)/0.5)." tiles\n";
my $nb_tiles_x = ceil(abs($maxlat2-$minlat2)/0.5);
my $nb_tiles_y = ceil(abs($maxlong2-$minlong2)/0.5);
@@ -400,7 +400,11 @@ for ($j=0; $j<$nb_tiles_x; $j++) {
print "L" if $type eq "01";
print "B" if $type eq "11";
print "?" if $type eq "00";
- $tiles{$nb_tiles_x * $i+$j} = { "lon" => $minlong2+0.5*$i, "lat" => $maxlat2-0.5*$j, "type" => $type, "id" => ($nb_tiles_x * $i+$j), "crossed" => 0};
+ my $tile_maxlon = $minlong2+0.5*$i + 0.5 > $maxlong2 ? $maxlong2 : $minlong2+0.5*$i + 0.5;
+ my $tile_minlat = $maxlat2-0.5*$j-0.5 < $minlat2 ? $minlat2 : $maxlat2-0.5*$j-0.5;
+ $tiles{$nb_tiles_x * $i+$j} = { "minlon" => $minlong2+0.5*$i, "maxlat" => $maxlat2-0.5*$j,
+ "maxlon" => $tile_maxlon, "minlat" => $tile_minlat,
+ "type" => $type, "id" => ($nb_tiles_x * $i+$j), "crossed" => 0};
}
print "\n";
}
@@ -520,7 +524,7 @@ foreach $way (values %ways) {
my ($lat, $lon) = intersec_way_tiles (
$nodes{$prev_node}->{"lat"}, $nodes{$prev_node}->{"lon"},
$nodes{$node}->{"lat"}, $nodes{$node}->{"lon"},
- $tile->{"lat"}-0.5, $tile->{"lon"}, $tile->{"lat"}, $tile->{"lon"}+0.5);
+ $tile->{"minlat"}, $tile->{"minlon"}, $tile->{"maxlat"}, $tile->{"maxlon"});
my $mid_node = {"lat" => $lat, "lon" => $lon, "id" => $osm_id-- };
$nodes{ $mid_node->{"id"} } = $mid_node;
@@ -559,7 +563,7 @@ foreach $way (values %ways) {
my ($lat, $lon) = intersec_way_tiles (
$nodes{$node}->{"lat"}, $nodes{$node}->{"lon"},
$nodes{$prev_node}->{"lat"}, $nodes{$prev_node}->{"lon"},
- $tile->{"lat"}-0.5, $tile->{"lon"}, $tile->{"lat"}, $tile->{"lon"}+0.5);
+ $tile->{"minlat"}, $tile->{"minlon"}, $tile->{"maxlat"}, $tile->{"maxlon"});
my $mid_node = {"lat" => $lat, "lon" => $lon, "id" => $osm_id-- };
$nodes{ $mid_node->{"id"} } = $mid_node;
@@ -580,7 +584,7 @@ foreach $way (values %ways) {
my ($lat, $lon) = intersec_way_tiles (
$nodes{$prev_node}->{"lat"}, $nodes{$prev_node}->{"lon"},
$nodes{$node}->{"lat"}, $nodes{$node}->{"lon"},
- $tile->{"lat"}-0.5, $tile->{"lon"}, $tile->{"lat"}, $tile->{"lon"}+0.5);
+ $tile->{"minlat"}, $tile->{"minlon"}, $tile->{"maxlat"}, $tile->{"maxlon"});
my $mid_node = {"lat" => $lat, "lon" => $lon, "id" => $osm_id-- };
$nodes{ $mid_node->{"id"} } = $mid_node;
@@ -609,7 +613,7 @@ foreach $way (values %ways) {
($lat, $lon) = intersec_way_tiles (
$nodes{$node}->{"lat"}, $nodes{$node}->{"lon"},
$nodes{$prev_node}->{"lat"}, $nodes{$prev_node}->{"lon"},
- $new_tile->{"lat"}-0.5, $new_tile->{"lon"}, $new_tile->{"lat"}, $new_tile->{"lon"}+0.5);
+ $new_tile->{"minlat"}, $new_tile->{"minlon"}, $new_tile->{"maxlat"}, $new_tile->{"maxlon"});
my $mid_node2 = {"lat" => $lat, "lon" => $lon, "id" => $osm_id-- };
$nodes{ $mid_node2->{"id"} } = $mid_node2;
@@ -653,7 +657,7 @@ foreach $tile (values %tiles) {
print( "->tile: ".$tile->{"id"}."\n");
- my @box = ($tile->{"lat"}-0.5, $tile->{"lon"}, $tile->{"lat"}, $tile->{"lon"}+0.5);
+ my @box = ($tile->{"minlat"}, $tile->{"minlon"}, $tile->{"maxlat"}, $tile->{"maxlon"});
# No way going through the tile -> guess if it is sea or lanf
# SHould check if it containds nodes -> type unknown + nodes should mean sea + islands
@@ -672,10 +676,10 @@ foreach $tile (values %tiles) {
} elsif ($tile->{"type"} ne "01") { # not land
my %temp = ("00"=>0, "10"=>0, "01"=>0, "11"=>0);
- $temp{lookup_handler($tile->{"lat"}, $tile->{"lon"}, -1, 0)}++;
- $temp{lookup_handler($tile->{"lat"}, $tile->{"lon"}, +1, 0)}++;
- $temp{lookup_handler($tile->{"lat"}, $tile->{"lon"}, 0, -1)}++;
- $temp{lookup_handler($tile->{"lat"}, $tile->{"lon"}, 0, +1)}++;
+ $temp{lookup_handler($tile->{"maxlat"}, $tile->{"minlon"}, -1, 0)}++;
+ $temp{lookup_handler($tile->{"maxlat"}, $tile->{"minlon"}, +1, 0)}++;
+ $temp{lookup_handler($tile->{"maxlat"}, $tile->{"minlon"}, 0, -1)}++;
+ $temp{lookup_handler($tile->{"maxlat"}, $tile->{"minlon"}, 0, +1)}++;
if( $temp{"10"} > $temp{"01"} ) {
$tile_is_sea=1;
@@ -690,10 +694,10 @@ foreach $tile (values %tiles) {
if ($tile_is_sea) {
my @way_nodes_id = ( $osm_id, $osm_id-1, $osm_id-2, $osm_id-3);
my @way_nodes = (
- { "lat" => $tile->{"lat"}, "lon" => $tile->{"lon"}, "id" => $osm_id--},
- { "lat" => $tile->{"lat"}, "lon" => $tile->{"lon"}+0.5, "id" => $osm_id--},
- { "lat" => $tile->{"lat"}-0.5, "lon" => $tile->{"lon"}+0.5, "id" => $osm_id--},
- { "lat" => $tile->{"lat"}-0.5, "lon" => $tile->{"lon"}, "id" => $osm_id--});
+ { "lat" => $tile->{"maxlat"}, "lon" => $tile->{"minlon"}, "id" => $osm_id--},
+ { "lat" => $tile->{"maxlat"}, "lon" => $tile->{"maxlon"}, "id" => $osm_id--},
+ { "lat" => $tile->{"minlat"}, "lon" => $tile->{"maxlon"}, "id" => $osm_id--},
+ { "lat" => $tile->{"minlat"}, "lon" => $tile->{"minlon"}, "id" => $osm_id--});
my $way = way->new($osm_id--);
$way->nodes(@way_nodes_id);
@@ -765,7 +769,7 @@ foreach $tile (values %tiles) {
my $lat = $nodes{$way_nodes[0]}->{"lat"};
my $lon = $nodes{$way_nodes[0]}->{"lon"};
- ($lat, $lon) = get_projection( $lat, $lon, $tile->{"lat"}-0.5, $tile->{"lon"}, $tile->{"lat"}, $tile->{"lon"}+0.5 );
+ ($lat, $lon) = get_projection( $lat, $lon, $tile->{"minlat"}, $tile->{"minlon"}, $tile->{"maxlat"}, $tile->{"maxlon"} );
my $node = { "lat" => $lat, "lon" => $lon, "id" => ($osm_id--)};
unshift( @way_nodes, $node->{"id"} );
push( @new_nodes, $node );
@@ -780,7 +784,7 @@ foreach $tile (values %tiles) {
my $lat = $nodes{$way_nodes[ @way_nodes - 1 ]}->{"lat"};
my $lon = $nodes{$way_nodes[ @way_nodes - 1 ]}->{"lon"};
- ($lat, $lon) = get_projection( $lat, $lon, $tile->{"lat"}-0.5, $tile->{"lon"}, $tile->{"lat"}, $tile->{"lon"}+0.5 );
+ ($lat, $lon) = get_projection( $lat, $lon, $tile->{"minlat"}, $tile->{"minlon"}, $tile->{"maxlat"}, $tile->{"maxlon"} );
my $node = { "lat" => $lat, "lon" => $lon, "id" => $osm_id--};
push( @way_nodes, $node->{"id"} );
push( @new_nodes, $node );