#!/usr/bin/perl #-------------------------------------------------------# # Web GIS System 〜地図表示システム〜 # # Copyright(C) 2004 script by Yoshiyuki Ito # # SADO GAME CAFE [http://sado.or.tv] # # MAIL:sado@or.tv # #-------------------------------------------------------# # システム設定 #----------------------------------------------------------------------------------- require 'sutf8.pl'; # UTF-8変換コードライブラリ require './cgi-lib.pl'; # 画像アップロードライブラリ $imgdir= "./upimg/"; # 画像格納ディレクトリ $kmldir= "./kml/"; # KMLデータ格納フォルダ $indexskin= "./skin/skin4.dat"; # 地図表示スキン $frameskin= "./skin/frameskin.dat"; # フレーム表示用表示スキン $mapfile= "./mapdata/mapfile.cgi"; # マップデータファイル # GoogleMAP API key $mapkey= "ABQIAAAA3eKOFx2BUBP4M-yRr6CU4hRjYufJbimVW0B4bhm2P1HG_K9fdBTi0jbzEW3i_Pxp5M2Cdfiz21Nb-Q"; # Google Earthとの連動 # 0 : しない # 1 : する $google_et= 1; # SkypeOutとの連動 # 0 : しない # 1 : する $skp= 0; # 登録カテゴリ @tema=('エンタメ 音楽 知識 情報','学ぶ 習う 教育','遊ぶ 趣味 ショップ','旅 観光ホテル宿泊','アート 画廊 文学 文化施設','飲食店グルメ 名産','キレイ 女性 美容 占い','生活 ペット','企業 サービス 金融','うどん そば ラーメン','軽食 カフェ 喫茶','金融 郵便局','金融 銀行','金融 郵便局ATM','金融 銀行ATM','金融 E-net ATM','金融 セブン銀行ATM','金融 ローソンATM','金融 キャッシングATM','不動産 マンション住宅賃貸','不動産 マンション販売物件','不動産 一戸建て販売物件','不動産 駐車場賃貸物件','不動産 土地販売物件','病院 福祉','居酒屋'); #----------------------------------------------------------------------------------- # システム &form; # SKINファイル読み込み open(IN,"$indexskin") || &error('skinfile open error'); @SKINFILE = ; close(IN); # MAPデータチェック $POST="〒";&sjis2utf8(*POST); $nl='なし';&sjis2utf8(*nl); if(!$in{'point'}){ open(IN,"$mapfile") || &error('mapfile open error'); @MAPDATA = ; close(IN); foreach(@MAPDATA){ ($no,$name,$mail,$ind,$data,$com,$bin,$adr,$tel,$url,$pass,$cat,$time,$date,$host,$addr,$tail,$W,$H) = split(/<>/); &utf82sjis(*no); $a=$link=$fimg=$mvfile=$but=""; ($LNG,$LAT) = split(/,/,$data); if($bin){$a.="$POST $bin
";} if($adr){$a.="$adr
";} if($tel){$a.="TEL $tel";} if($url){$link="HOME PAGE";}else{$link=$nl;} if($tail){$fimg="";} if($url =~ /\.asx/i || $url =~ /\.wmv/i || $url =~ /\.mpg/i || $url =~ /\.avi/i || $url =~ /\.mpeg/i){ $mvfile="


"; } $comment="
$com
$a
"; $but.="" if($skp); $but.="" if($google_et); if($in{'no'}==$no){last;} } } # 直リンク表示用データ変換 if($in{'point'}){ ($LNG,$LAT) = split(/,/,$in{'point'}); $a=$ind=$com=$link=$fimg=""; }elsif($in{'ws'}){ open(IN,"$frameskin") || &error('skinfile open error'); @SKINFILE = ; close(IN); $tlink="$ind"; }else{ # 地図データ詳細データ $ct=$tema[$cat];&sjis2utf8(*ct); $adc='住所';&sjis2utf8(*adc); $tlc='電話';&sjis2utf8(*tlc); $urc='関連HP';&sjis2utf8(*urc); $ct="$ct"; $flink=< $adc
住所

$bin $adr

EOF $mapcom.=< $tlc
電話番号

$tel

EOF $mapcom.=< $urc
関連ホームページ $ind EOF $img2=<$fimg$mvfile EOF } # SKINデータ書き換え foreach(0..$#SKINFILE){ $SKINFILE[$_] =~ s/##APIKEY##/$mapkey/g; $SKINFILE[$_] =~ s/##TITLE##/$ind/g; $SKINFILE[$_] =~ s/##IND##/$ind/g; $SKINFILE[$_] =~ s/##LAT##/$LAT/g; $SKINFILE[$_] =~ s/##LNG##/$LNG/g; $SKINFILE[$_] =~ s/##PLAT##/$LAT/g; $SKINFILE[$_] =~ s/##PLNG##/$LNG/g; $SKINFILE[$_] =~ s/##BODY##/$comment/g; $SKINFILE[$_] =~ s/##URL##/$link/g; $SKINFILE[$_] =~ s/##IMG##/$fimg/g; $SKINFILE[$_] =~ s/##CAT##/$ct/g; $SKINFILE[$_] =~ s/##TITLE2##/$ind/g; $SKINFILE[$_] =~ s/##COM##/$com/g; $SKINFILE[$_] =~ s/##IMG2##/$img2/g; $SKINFILE[$_] =~ s/##DATA##/$mapcom/g; $SKINFILE[$_] =~ s/##TAG##/$flink/g; $SKINFILE[$_] =~ s/##LINK##/$tlink/g; $SKINFILE[$_] =~ s/##WSIZE##/$in{'ws'}/g; $SKINFILE[$_] =~ s/##HSIZE##/$in{'hs'}/g; } # 地図表示 print "Content-type: text/html\n\n"; print @SKINFILE; exit; #----------------------------------------------------------------------------------- # フォーム処理 sub form{ local($key,$val); &ReadParse; while (($key,$val) = each(%in)){ # エスケープ $val =~ s///g; $val =~ s/&/&/g; $val =~ s/\r\n/
/g; $val =~ s/\n/
/g; $val =~ s/\r/
/g; $val =~ s/\t//g; $val =~ s/\;//g; $val =~ s/"//g; $in{$key} = $val; } } #----------------------------------------------------------------------------------- # エラー処理 sub error{ print "Content-type: text/html\n\n"; print "CGI Error\n"; print "\n"; print "

CGI Error

\n"; print "

This program encountered an internal error.

"; print "

Error: $_[0]

\n"; print ""; exit; }