柴艷賓
摘要:公交查詢系統(tǒng)是專門服務(wù)于市民出行的信息系統(tǒng),它是城市社會(huì)和經(jīng)濟(jì)活動(dòng)的重要組成部分。以浙江省蘭溪市為例研究并實(shí)現(xiàn)了面向廣大用戶的公交查詢系統(tǒng),主要運(yùn)用PHP技術(shù),在Apache +MySQL +PHP環(huán)境下設(shè)計(jì)開發(fā)。系統(tǒng)能夠?qū)崿F(xiàn)線路查詢、站點(diǎn)查詢、換乘查詢和數(shù)據(jù)管理等功能,具有很好的可行性和擴(kuò)展性, 為相關(guān)信息系統(tǒng)的研發(fā)提供了有益的參考。
關(guān)鍵詞:公交查詢系統(tǒng);PHP;MySQL;換乘查詢;系統(tǒng)設(shè)計(jì)
中圖分類號(hào):TP315 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)06-1165-02
Research and Implementation of Public Transport Query System Based on PHP
CHAI Yan-bin
(Zhejiang Yuying Vocational and Technical College, Hangzhou 310018, China)
Abstract:Public transport query system is the information system is dedicated to serving the public travel, it is an important part of city social and economic activities. In Zhejiang Province, Lanxi city as a case study and implementation of transit oriented users query system, mainly the use of PHP technology, design and development of Apache +MySQL in +PHP environment. The system can realize the line inquiry, site query, transfer query and data management and other functions, is feasible and good expansibility, provides the beneficial reference for the related research and development information system.
Key words:public transport query system;PHP;MySQL;transfer query;systems design
位于浙中西部的蘭溪市,具有浙江省歷史文化名城、浙江省衛(wèi)生城市和浙江省文明城市的稱號(hào),目前人口在60萬左右。近兩年隨著城市規(guī)模的不斷擴(kuò)大,公交線路逐漸增多,大量人口出行使得城市交通環(huán)境變得越來越復(fù)雜。蘭溪一直在努力把自己打造成為旅游文化名城,大力發(fā)展公共交通的同時(shí),卻沒有一個(gè)便于市民和游客出行的公交查詢系統(tǒng),乘客要想獲得公交信息只能通過電話、交通圖、向熟人問訊等常規(guī)方式。較少的公交信息量,簡(jiǎn)單的查詢方式已經(jīng)成為制約當(dāng)?shù)毓步煌òl(fā)展的一大問題。
PHP是一種在Web服務(wù)器上解釋執(zhí)行的嵌入HTML文檔的腳本語言,其源代碼開放,執(zhí)行速度快,占用系統(tǒng)資源少, 具有良好的可移植性和擴(kuò)展性,被廣泛應(yīng)用于系統(tǒng)網(wǎng)站的編程開發(fā)。因此,開發(fā)一個(gè)基于PHP的網(wǎng)上城市公交查詢系統(tǒng),為廣大乘客提供實(shí)時(shí)、準(zhǔn)確、直觀的公交信息,可以充分發(fā)揮數(shù)字城市的作用,為蘭溪市的交通信息建設(shè)和社會(huì)發(fā)展做出貢獻(xiàn)。
1 系統(tǒng)設(shè)計(jì)
1.1 系統(tǒng)功能結(jié)構(gòu)
系統(tǒng)的各主要功能模塊如圖1所示。系統(tǒng)管理模塊主要實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)庫表的管理和維護(hù),主要包括:管理員信息管理;公交站點(diǎn)、線路信息管理;系統(tǒng)公告和新聞管理。用戶查詢模塊是查詢符合用戶條件的公交線路和換乘信息,主要提供的功能有:線路查詢;站點(diǎn)查詢和換乘查詢。換乘查詢指的是已知出發(fā)點(diǎn)和目的地,查詢出基于換乘車次數(shù)最少的可行乘車或轉(zhuǎn)車方案。系統(tǒng)公告和新聞模塊是對(duì)系統(tǒng)的補(bǔ)充,能更好地傳遞重要的公交通知和體現(xiàn)城市文化和精神風(fēng)貌。
圖1 系統(tǒng)模塊圖
1.2 數(shù)據(jù)庫設(shè)計(jì)
MySQL是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器,使用當(dāng)前最常用最流行的數(shù)據(jù)庫管理語言——結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。系統(tǒng)采用“實(shí)體聯(lián)系模型”(ER模型)來表示數(shù)據(jù)庫的結(jié)構(gòu)與語義,系統(tǒng)主要的實(shí)體和屬性定義如下:
管理員表:包括管理員ID,管理員名,管理員密碼;線路表:包括線路ID,線路名稱,線路分類,所屬公司,起點(diǎn)站,終點(diǎn)站,票價(jià),IC卡,班車時(shí)間;站點(diǎn)表:包括站點(diǎn)ID,站點(diǎn)名稱,站點(diǎn)位置,名稱拼音,字母分類(用站點(diǎn)名稱拼音第一個(gè)字母來歸類站點(diǎn));站點(diǎn)次序表:包括站點(diǎn)次序ID,上下行標(biāo)志,線路ID,站點(diǎn)ID,站點(diǎn)性質(zhì)。
2 系統(tǒng)的主要實(shí)現(xiàn)
2.1 數(shù)據(jù)庫連接
在動(dòng)態(tài)網(wǎng)站中,調(diào)用數(shù)據(jù)庫是十分頻繁的,為了避免編寫重復(fù)的代碼,編寫一個(gè)數(shù)據(jù)庫連接文件是非常重要的。在本系統(tǒng)中,新建了一個(gè)config.php文件用來設(shè)置MySQL數(shù)據(jù)庫的連接,下面是部分config.php文件配置數(shù)據(jù)庫的代碼:
<?php
include(ROOT.'include/mysql.php'); //載入數(shù)據(jù)庫連接文件
$dbhost = 'localhost'; // 數(shù)據(jù)庫服務(wù)器
$dbuser = 'root'; // 數(shù)據(jù)庫用戶名
$dbpw = ''; // 數(shù)據(jù)庫密碼
$dbname = 'bus'; // 數(shù)據(jù)庫名
$pconnect = 0; // 數(shù)據(jù)庫持久連接 0=關(guān)閉, 1=打開
$dbcharset = '';// MySQL 字符集, 可選 'gbk', 'big5', 'utf8', 'latin1', 留空為按照論壇字符集設(shè)定
$charset = 'gbk';//頁面默認(rèn)字符集, 可選 'gbk', 'big5', 'utf-8'
$db = new Mysql();
$db→connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);?>
2.2 系統(tǒng)界面
界面是系統(tǒng)和用戶實(shí)現(xiàn)交互的部分,它表現(xiàn)了系統(tǒng)的整體感覺。界面實(shí)現(xiàn)的目標(biāo)是要符合用戶審美和易于使用的需求,還要能貼近當(dāng)前城市文化生活的風(fēng)格風(fēng)貌。系統(tǒng)主界面如圖2 所示。
圖2 系統(tǒng)主界面
2.3 用戶查詢功能
線路查詢:進(jìn)入系統(tǒng)主頁后,在線路查詢的文本框中輸入查詢的線路名稱,點(diǎn)擊查詢按鈕,系統(tǒng)首先檢查用戶所查詢的線路是否存在,如果不存在給出出錯(cuò)提示,如果存在直接給出這條線路的所有信息,如上行和下行站點(diǎn)信息、票價(jià)、IC卡、早晚班車時(shí)間、線路類型、所屬公司等。
站點(diǎn)查詢:進(jìn)入系統(tǒng)頁后,在站點(diǎn)查詢的文本框中輸入查詢的站點(diǎn)名稱,點(diǎn)擊查詢按鈕,系統(tǒng)首先檢查用戶所查詢的站點(diǎn)是否存在,如果不存在給出出錯(cuò)提示,如果存在系統(tǒng)則顯示經(jīng)過該站點(diǎn)的線路信息,如線路名稱及途經(jīng)的上下行站點(diǎn)。
換乘查詢:進(jìn)入系統(tǒng)主頁后,在換乘查詢模塊的起點(diǎn)名稱文本框中輸入出發(fā)站點(diǎn),在終點(diǎn)名稱的文本框中輸入出行的終點(diǎn),點(diǎn)擊查詢按鈕,系統(tǒng)首先會(huì)查詢輸入的站點(diǎn)是否存在,如果不存在給出出錯(cuò)提示,如果都存在系統(tǒng)便開始搜索這兩個(gè)站點(diǎn)之間是否有公交線路直達(dá),如果沒有直達(dá),系統(tǒng)會(huì)繼續(xù)檢測(cè)是否存在一次換乘方案,如果有系統(tǒng)會(huì)給出所有一次換乘方案供用戶選擇,如果沒有,系統(tǒng)會(huì)再次檢測(cè)是否存在二次換乘方案,如果有系統(tǒng)會(huì)給出所有二次換乘方案供用戶選擇,如果沒有,系統(tǒng)則給出提示,兩站點(diǎn)之間無任何換乘信息。系統(tǒng)最優(yōu)路徑算法只計(jì)算到二次換乘,如果查詢出多條轉(zhuǎn)乘線路會(huì)按照經(jīng)過站點(diǎn)數(shù)從少到多進(jìn)行排序。例:在系統(tǒng)中查詢從“汽車北站”到“芥子園”的換乘信息。如圖3所示,查詢結(jié)果得知,兩站點(diǎn)之間沒有直達(dá)線路,有3條一次換乘線路可供選擇。
圖3 公交換乘查詢結(jié)果
3 結(jié)束語
基于PHP實(shí)現(xiàn)了蘭溪城市公交查詢系統(tǒng),具有非常重要社會(huì)效應(yīng)和現(xiàn)實(shí)意義。系統(tǒng)運(yùn)行穩(wěn)定,信息量豐富,基本上能滿足用戶查詢行程路線的需求,讓用戶滿意;同時(shí)可以實(shí)現(xiàn)公交線路和站點(diǎn)的基本信息管理、新聞管理和公告管理,滿足了管理員的需求。但也存在一些不足,如公交換乘查詢只給出了基于換乘次數(shù)最少的查詢方案,并沒有探討這樣的轉(zhuǎn)乘方案到底是不是行程路徑最短或者最為經(jīng)濟(jì),以后還需要進(jìn)一步完善。
參考文獻(xiàn):
[1] 張蕊.公交查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].硅谷,2011(21):74-75.
[2] 孫汪泉.城市公交查詢管理系統(tǒng)[J].福建電腦,2009(5):164.
[3] 陳昊.城市公交信息查詢系統(tǒng)的建立與實(shí)現(xiàn)[J].測(cè)繪與空間地理信息,2010,3(33):49-51.