-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathosm_get_prefixed_pairs_from_relation_info.pl
More file actions
75 lines (66 loc) · 2.38 KB
/
Copy pathosm_get_prefixed_pairs_from_relation_info.pl
File metadata and controls
75 lines (66 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#--------------------------------------------------
# osm_get_prefixed_pairs_from_relation_info.pl
#--------------------------------------------------
# (c) Copyright 2023 by Richard Fobes at SolutionsCreative.com
# Permission to copy and use and modify this
# software is hereby given to individuals and to
# businesses with ten or fewer employees if this
# copyright notice is included in all copies
# and modified copies.
# All other rights are reserved.
# Businesses with more than ten employees are
# encouraged to contract with small businesses
# to supply the service of running this software
# if there are arrangements for either business
# to make donations to support the Open Street
# Map project.
# Disclaimer of Warranty: THERE IS NO WARRANTY
# FOR THIS SOFTWARE. THE COPYRIGHT HOLDER PROVIDES
# THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY
# KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
# BUT NOT LIMITED TO, THE FITNESS FOR A
# PARTICULAR PURPOSE.
# Limitation of Liability: IN NO EVENT WILL THE
# COPYRIGHT HOLDER BE LIABLE TO ANYONE FOR
# DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
# INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
# OUT OF THE USE OR INABILITY TO USE THE SOFTWARE.
#--------------------------------------------------
# Usage:
# perl osm_get_prefixed_pairs_from_relation_info.pl < input_file.txt > output_file.txt
#--------------------------------------------------
# From relation info get the node IDs in the
# "links_" entry or get the "label_at" nodes.
# Write each pair of item IDs, which are either
# a node and way or a node and relation. Insert
# at the beginning of each output line the two
# digits at the end of the node ID.
while( $input_line = <STDIN> )
{
chomp( $input_line ) ;
$item_ids = "" ;
if ( $input_line =~ /(r[0-9]+) .*label_at_(n[0-9]+)/ )
{
$way_id = $1 ;
$item_ids = $2 ;
} elsif ( $input_line =~ /(r[0-9]+) +(links_)?([nwr0-9_]+)/ )
{
$way_id = $1 ;
$item_ids = $3 ;
}
if ( $item_ids =~ /_/ )
{
@list_of_item_ids = split( /_+/ , $item_ids ) ;
} else
{
@list_of_item_ids = ( $item_ids ) ;
}
foreach $item_id ( @list_of_item_ids )
{
if ( $item_id =~ /^n[0-9]*([0-9][0-9])$/ )
{
$ending_two_digits = $1 ;
print $ending_two_digits . " " . $item_id . " " . $way_id . "\n" ;
}
}
}