#!/usr/bin/perl use strict; use warnings; use utf8; # IOの文字コードを規定 binmode(STDIN, ":utf8"); binmode(STDOUT, ":utf8"); binmode(STDERR, ":utf8"); my $kml_filename = ""; my $flag_mode; my $coord_lat_long; my $placename; print("KML Placemark 自動作成スクリプト\n"); print("出力ファイル名(日本語名称不可) [output.kml] : "); $_ = ; chomp; if(length($_) <= 0) { $kml_filename = "output.kml"; } else { $kml_filename = $_; } open(FH_OUT, ">$kml_filename") or die("出力ファイルに書き込めません\n"); binmode(FH_OUT, ":utf8"); print(FH_OUT "\n" . "\n" . "\n\n" . "\n" . "\n" . "\n\n") or die("出力ファイルに書き込めません\n"); while(1) { print("処理選択 r/b/g:地点追加(icon Red/Blue/Green), q:終了 (r/g/b/q) [r] : "); $_ = ; chomp; if(length($_)<=0 || lc($_) eq 'r'){ $flag_mode = 'r'; } elsif(lc($_) eq 'g'){ $flag_mode = 'g'; } elsif(lc($_) eq 'b'){ $flag_mode = 'b'; } elsif(lc($_) eq 'q'){ $flag_mode = 'q'; } else { next; } print("flag = " . $flag_mode . "\n"); if($flag_mode eq 'q') { print(FH_OUT "\n\n") or die("出力ファイルに書き込めません\n"); print("処理終了\n"); close(FH_OUT); exit(); } print("座標 北緯,東経 (例 : 35.5,135.2) : "); $_ = ; chomp; if(length($_) <= 0){ next; } $coord_lat_long = $_; my @coord = split(/,/, $coord_lat_long); print("座標のラベル (例 : 中央駅) : "); $_ = ; chomp; if(length($_) <= 0){ next; } $placename = $_; print(FH_OUT "\n" . " ". $placename . "\n"); if($flag_mode eq 'r') { print(FH_OUT " #Icon_Red\n"); } if($flag_mode eq 'g') { print(FH_OUT " #Icon_Green\n"); } if($flag_mode eq 'b') { print(FH_OUT " #Icon_Blue\n"); } print(FH_OUT " \n" . " " . $coord[1] . "," . $coord[0] . "\n" . " \n" . "\n\n") or die("出力ファイルに書き込めません\n"); }