GunRunMaps/GIS base files and routes/convert_kml.sh

6 lines
1.0 KiB
Bash
Executable File

# For KML files from MapMyRun:
perl -0777 -i -pe 's/(<name>\s*)Kilometer (\d+\s*<.name>)/$1$2/imsg; s/(\#start_marker.*?<name>).*?(<.name>)/$1Start$2/imsg; s/(\#finish_marker.*?<name>).*?(<.name>)/$1Finish$2/imsg' *.kml
perl -0777 -i -pe 'my $name; if (m{<!\[CDATA\[.{0,80}? (\d+km?.*?) start\s*]]>}ims) { $name = $1 } else { $name = $ARGV; $name =~ s/^(\d+km? .*?) route.*?.kml/$1/i; } $name =~ s/\s*-\s*/ /g; if ($name =~ m{^(\d+)km? (.*?)$}i) { $length = $1; $distance = "$1KM"; $route = $2; } $name =~ s/ /_/g; s{<styleUrl>.*?<.styleUrl>}{<ExtendedData>\n <Data name="Distance"><value>$distance</value></Data>\n <Data name="Route"><value>$route Start</value></Data>\n <Data name="Source"><value>$distance $route</value></Data>\n <Data name="Fullname"><value></value></Data>\n <Data name="RouteLen"><value>$length</value></Data>\n </ExtendedData>}imsg; s{(Fullname"><value>).{0,20}?(</value>.{0,200}?<name>\s*)(\w+)(\s*</name>)}{$1$3$2$3$4}imsg; s{(Fullname"><value>\s*)(\d+)}{$1Kilometre $2}imsg;' *.kml