\n" ;
}
#
# ---------- output open window function ----------
#
function putOpenWindowFunction()
{
echo "\n" ;
}
function DispResultPref( $db, $road, $roadname, $cat, $sql )
{
$mapByroad = new MapByroad( $db ) ;
$dbPref = new CDbPref( $db ) ;
$dbArea = new CDbArea( $db ) ;
$pref_res = $db->Exec( $sql ) ;
$pref_row = pg_numrows( $pref_res ) ;
if( $pref_row == 0 )
return ;
for( $pref_idx=0 ; $pref_idx < $pref_row ; $pref_idx ++ ) {
$pref_obj = pg_fetch_object( $pref_res, $pref_idx ) ;
$pref_obj = $dbPref->GetObjByNo( $pref_obj->pref ) ;
$objArea = $dbArea->GetObjByNo( $pref_obj->area ) ;
#対象都道府県内スポット検索
$sql = "select * from spot"
. sprintf( " where road=%u", $road )
. sprintf( " and pref=%u", $pref_obj->no )
. sprintf( " and cat=%u", $cat )
. " order by no" ;
$rs_res = $db->Exec( $sql ) ;
$rs_row = pg_numrows( $rs_res ) ;
#地図サイズ取得
$mapByroad->GetSize( $road, $pref_obj->no, $width, $height ) ;
#サムネイル
$popup = sprintf( "%s%sの%s沿線にある道の駅マップ",
$objArea->name,
$pref_obj->name,
$roadname ) ;
printf( "\n
"
. " "
. " ",
$road, $pref_obj->no,
$popup, $popup, $road, $pref_obj->no ) ;
echo ""
."地図をクリックすると拡大表示"
." \n" ;
echo " \n" ;
#情報領域
echo "" ;
# <地域名><都道府県>の<路線名>沿線にある道の駅リスト
printf( "%s%s の%s沿線にある道の駅
\n",
$objArea->name,
$pref_obj->name,
$roadname ) ;
echo "
\n" ;
#ヘッダー
echo "\n" ;
echo "駅名 \n" ;
echo "TEL/住所 \n" ;
echo " \n" ;
#空行
echo " \n" ;
for( $rs_idx=0 ; $rs_idx < $rs_row ; $rs_idx++ ) {
$rs_obj = pg_fetch_object( $rs_res, $rs_idx ) ;
echo " \n" ;
echo "\n" ;
echo "" ;
if( $rs_obj->infouri )
printf( "%s ",
$GLOBALS['michieki_uri'],
$rs_obj->infouri, $rs_obj->name );
else
echo $rs_obj->name ;
echo " \n" ;
#過渡期的対策(都道府県名が重複しないように)
$pref = $dbPref->GetNameByNo( $rs_obj->pref ) ;
if( $rs_obj->city == "" ) { #市町村未定義対策
$rs_obj->city = $rs_obj->address ;
$rs_obj->address = "" ;
}
if( ereg( "^$pref(.*)$", $rs_obj->city, $regs ))
$rs_obj->city = $regs ;
echo ""
. $rs_obj->tel . " \n" ;
echo " \n" ;
echo ""
. $pref
. $rs_obj->city
. $rs_obj->address
. " \n" ;
echo " \n" ;
}
echo "
\n" ;
echo " \n" ;
}
}
function DispResult( $db, $road, $area, $pref )
{
$dbSpotCat = new CDbSpotCat( $db ) ;
$dbRoad = new DbRoad( $db ) ;
$dbArea = new CDbArea( $db ) ;
echo " \n" ;
#道の駅カテゴリ番号確認
if( $db->cat_michieki == 0 )
return ;
#道路名取得
$roadname = $dbRoad->GetNameByNo( $road ) ;
echo "" ;
echo "
\n" ;
#$prefが指定されていれば、最上段に表示する。
$without = "" ;
if( $pref > 0 ) {
$sql = "SELECT pref FROM spot WHERE"
. sprintf( " road=%u", $road )
. sprintf( " AND pref=%u", $pref )
. sprintf( " AND cat=%u", $db->cat_michieki )
. " group by pref"
. " order by pref" ;
DispResultPref( $db, $road, $roadname, $db->cat_michieki, $sql ) ;
$without= sprintf( " AND pref!=%u", $pref ) ;
}
#対象地域内検索
$sql = "select pref from spot where road=$road"
. " and pref in ( select no from pref where area=$area )"
. sprintf( " AND cat=%u", $db->cat_michieki )
. $without
. " group by pref"
. " order by pref" ;
DispResultPref( $db, $road, $roadname, $db->cat_michieki, $sql ) ;
#対象地域外検索
$sql = "select pref from spot where road=$road"
. " and pref not in ( select no from pref where area=$area )"
. sprintf( " AND cat=%u", $db->cat_michieki )
. $without
. " group by pref"
. " order by pref" ;
DispResultPref( $db, $road, $roadname, $db->cat_michieki, $sql ) ;
echo "
\n" ;
echo "" ;
}
function dspPageHeader( $area, $road, $bWidthSelector=FALSE )
{
echo "\n" ;
echo "\n" ;
echo " \n" ;
echo "道の駅をたずねて何千キロ - 沿線検索 \n" ;
echo " \n" ;
echo "\n" ;
echo "\n" ;
echo "\n" ;
echo "\n" ;
echo " \n" ;
echo "総合案内に戻る \n" ;
echo "
\n" ;
echo "\n" ;
echo "\n" ;
echo "\n" ;
echo " \n" ;
echo " \n" ;
echo "\n" ;
echo " \n" ;
echo " \n" ;
echo "ここでは、\n" ;
echo "各路線ごとに道の駅が検索可能\n" ;
echo "(参考までに選択した地方以外で同路線のものも表示している)。\n" ;
echo "なお、\n" ;
echo "詳細情報があるものについては、駅名をクリックすると閲覧可能だ。\n" ;
echo "旅の計画に役立てて欲しい。\n" ;
echo "
\n" ;
echo " \n" ;
echo " \n" ;
echo " \n" ;
if( $bWidthSelector ) {
echo "\n" ;
echo " \n" ;
echo " \n" ;
DispRoadList( $area, $road ) ;
echo " \n" ;
}
echo "
\n" ;
}
function mdResult( $db, $area, $road, $pref )
{
//----- for maintenance -----
if( file_exists( $GLOBALS['maintenance'] )) {
dspPageHeader( $area, $road ) ;
echo "
\n" ;
echo "只今、データベースのメンテナンス中です。 \n" ;
echo "しばらくお待ち下さい。 \n" ;
echo " \n" ;
return( 0 ) ;
} ;
dspPageHeader( $area, $road, TRUE ) ;
putOpenWindowFunction() ;
if( $road && $area )
DispResult( $db, $road, $area, $pref ) ;
}
//----- main procedure -----
function main()
{
$area = $GLOBALS['area'] ;
$pref = $GLOBALS['pref'] ; #無くても良い。あれば最上段に表示。
$road = $GLOBALS['road'] ;
//----- connect to database -----
$db = new MichiekiDB( "www", "owl" ) ;
if( !$db ) {
echo "DBへの接続エラーです。" ;
return( 0 ) ;
}
###
### $road に道路名が入ってきた場合は道路番号に変換
###
if( !is_numeric( $road )) {
$dbRoad = new DbRoad( $db ) ;
$road = $dbRoad->GetNo( $road ) ;
}
mdResult( $db, $area, $road, $pref ) ;
}
main() ;
ご意見・ご感想・ご要望は、ふゆのほしfuyuhoshi@nifty.com まで。
Copyright(c)2000-2004 ふゆのほし All rights reserved
くるま旅支援システム「たびあん」(c)2002-2004
road-star.jp All rights reserved.
本サイトに掲載されている全ての内容の無断使用を禁じます。