基于多模式交通可達性的影院位置評估軟件系統(tǒng)開發(fā)——以西安市為例
引 言
隨著經(jīng)濟社會的發(fā)展,許多大中城市正在從“生產(chǎn)城市” 向“消費城市”轉(zhuǎn)型,各商業(yè)體蓬勃發(fā)展。本文通過高德地圖采集西安市基礎(chǔ)路網(wǎng)、公交線路、地鐵線路和商業(yè) POI 數(shù)據(jù),通過淘票票采集西安市影院數(shù)據(jù),將以上數(shù)據(jù)進行預(yù)處理后,均存儲于數(shù)據(jù)庫(Structured Query Language,SQL)中,并在數(shù)據(jù)庫中進行數(shù)據(jù)運算,對各影院位置進行評估,再通過 Java 進行后端數(shù)據(jù)調(diào)用推送至前端網(wǎng)頁呈現(xiàn)。
SQL 是由 Microsoft 開發(fā)和推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System,RDBMS),是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。其擁有強大的數(shù)據(jù)處理能力, 可處理千萬級別的數(shù)據(jù)量,擁有圖形化用戶界面、豐富的編程接口以及對 Web 技術(shù)的支持,被廣泛應(yīng)用于動態(tài)開發(fā)、關(guān)系數(shù)據(jù)和商業(yè)智能。
1 數(shù)據(jù)預(yù)處理
本文采用的衡量影院位置優(yōu)劣的標(biāo)準(zhǔn)是票房收入,影院數(shù)據(jù)采集自淘票票專業(yè)版,該影院數(shù)據(jù)包括各月份的票房收入、影院廳數(shù)、座位數(shù)等屬性。在此基礎(chǔ)上,為了盡可能規(guī)避影院內(nèi)部因素對票房收入的影響,將各影院 12 個月的票房收入取平均值,且剔除 3 個廳數(shù)以下的影院。預(yù)處理影院數(shù)據(jù)后,重點關(guān)注外部因素對影院票房收入的影響。本文關(guān)注研究了步行可達性、公交可達性、地鐵可達性及商業(yè) POI 等外部因素,如圖 1 所示。
通過高德地圖采集西安市基礎(chǔ)路網(wǎng)、公交線路、地鐵線路和商業(yè) POI 數(shù)據(jù)。其中,基礎(chǔ)路網(wǎng)包括所有行人可通行的部分,即主干路網(wǎng)、支干路網(wǎng)及公園、小區(qū)路網(wǎng)等,該部分數(shù)據(jù)能夠保證步行可達性計算的準(zhǔn)確性。公交可達性的計算中,剔除了站點較少的直達線路及偏遠地區(qū)線路,著重分析西安市三環(huán)以內(nèi)主城區(qū)可達性。地鐵線路選擇已通車運行的3 條地鐵線路,未涉及規(guī)劃線路與在建線路。商業(yè) POI 數(shù)據(jù)采集自西安市范圍內(nèi)的餐飲與購物 POI 數(shù)據(jù),用 POI 的密度間接反映區(qū)域商業(yè)活力。
在 Arcgis 內(nèi),將西安步行路網(wǎng)按照每隔 30 m 的距離打斷為小路段,并將這些小路段轉(zhuǎn)換為路段采樣點,而后通過臨近計算或插值的方法,將相關(guān)屬性數(shù)據(jù)轉(zhuǎn)換到采樣點上, 把所有數(shù)據(jù)存入數(shù)據(jù)庫以分析調(diào)用。
2 用戶界面設(shè)計
用戶界面不僅是軟件應(yīng)用的重要組成部分,同時還應(yīng)是良好的人機交互界面,快捷方便,簡明扼要,展示、引導(dǎo)用戶使用絕大部分程序功能。JSP(Java Server Pages)是 Java 服務(wù)器頁面,具備 Java 技術(shù)的簡單應(yīng)用與完全的面向?qū)ο螅?具有平臺無關(guān)性,且安全可靠,主要面向因特網(wǎng)的所有特點, 具有多平臺支持。
窗口是人機對話的重要組成部分,用戶登錄界面包含賬戶、密碼及驗證碼,用戶可通過該界面進行登錄,并最終查詢數(shù)據(jù)可視化結(jié)果,可實現(xiàn)同時為多位用戶提供數(shù)據(jù)可視化界面。用戶登錄界面如圖 2 所示。
圖 2 用戶登錄界面
3 數(shù)據(jù)庫通信設(shè)計
數(shù)據(jù)庫訪問技術(shù)是連接數(shù)據(jù)庫與 Java 客戶端之間的必備橋梁。目前,Java 語言訪問數(shù)據(jù)庫已經(jīng)有了一套 API。
3.1 JDBC編程接口
JDBC(Java Database Connectivity)是連接 Java 應(yīng)用程序和數(shù)據(jù)庫之間的橋梁,是一組標(biāo)準(zhǔn) Java 語言中的接口和類, 是一種對 ODBC API 面向?qū)ο蟮姆庋b和重新設(shè)計,使得 Java 客戶端程序可以訪問各種不同類型的數(shù)據(jù)庫。Java.sql 提供了多種 JDBC API,其中常見的有 :Connection 接口,代表與數(shù)據(jù)庫的連接,通過它調(diào)用 createStatement 對象 ;Statement 接口,用來執(zhí)行 SQL 語句并返回結(jié)果記錄集 ;ResultSet 接口,SQL 語句執(zhí)行后的結(jié)果記錄集,必須逐行訪問數(shù)據(jù)行,可用任何順序訪問列。
3.2 MicrosoftSQLServer 數(shù)據(jù)庫
數(shù)據(jù)庫是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲與管理數(shù)據(jù)的倉庫。數(shù)據(jù)庫有很多種,其中應(yīng)用最為廣泛的是 SQL Server 數(shù)據(jù)庫, 它具有使用方便、伸縮性好及相關(guān)軟件集成程度高等優(yōu)點。例如,可提供高性能的數(shù)據(jù)訪問 ;每個表可處理多達千萬級別的數(shù)據(jù)量 ;可通過一個簡單的 T-SQL 語句使一個對象在因特網(wǎng)上被訪問,從而創(chuàng)建一個 HTTP 終端 ;支持 OLE DB 與多種查詢方式 ;圖像化的用戶界面,使系統(tǒng)管理與數(shù)據(jù)庫管理更加直觀、簡單。
3.3 SQL語言
SQL 是結(jié)構(gòu)化查詢語言,也是一種數(shù)據(jù)庫查詢與程序設(shè)計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。
SQL 語言是高級的非過程化編程語言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對數(shù)據(jù)的存放方法,也無需用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫系統(tǒng)可使用相同的結(jié)構(gòu)化查詢語言作為數(shù)據(jù)輸出與管理的接口,大幅度簡化了用戶的工作。同時, SQL 語言可實現(xiàn)嵌套,具有極大的靈活性與強大的功能。
3.4 關(guān)鍵程序設(shè)計
應(yīng)用軟件時,使用者通過用戶界面與數(shù)據(jù)庫進行交流與通信,以實現(xiàn)數(shù)據(jù)傳輸、計算以及可視化功能。本文程序設(shè)計中,使用者通過外部設(shè)備操作瀏覽器,向前端控制器發(fā)送相應(yīng)請求,前端控制器收到請求后交由后端處理器進行數(shù)據(jù)庫操作,數(shù)據(jù)由數(shù)據(jù)庫返回至后端處理器,經(jīng)前端控制器交由視圖渲染后呈現(xiàn)于瀏覽器上。評估系統(tǒng)流程如圖 3 所示。
用戶瀏覽所呈現(xiàn)的影院評估可視化結(jié)果如圖 4 所示。圖中左側(cè)顯示了根據(jù)本文研究量化后的西安現(xiàn)有各影院綜合評分,右側(cè)的點是各影院在地圖上的空間分布,其大小因其評分高低差異有所不同,點的大小與評分成正比。由此可方便用戶直觀地看出不同影院間的評分差異。
圖 4 用戶瀏覽所呈現(xiàn)的影院評估可視化結(jié)果
在瀏覽器窗口中,可任意在地圖上點擊代表各影院的點獲取影院評分的詳細指標(biāo),影院各指標(biāo)的具體評分如圖 5 所示。在該對話窗口中,可直觀地得到各影院的票房數(shù)據(jù)、影院廳數(shù)等具體數(shù)值,同時也可得到各種可達方式以及餐飲、購物 POI 評分。
圖 5 影院各指標(biāo)的具體評分
從 SQL 中提取數(shù)據(jù)的相應(yīng)數(shù)據(jù)庫配置程序代碼如下 :
MyBites 數(shù)據(jù)庫配置 :
存放對應(yīng)的 sql 語句,和 dao 層相對應(yīng) :
Ex :
<select id="findList" resultType="Car">
SELECT cc.id,
4 結(jié) 語
Java 功能強大,具有簡單性、健壯性、安全性、可移植性、多線程等優(yōu)點,Hadoop 框架及其他大數(shù)據(jù)處理技術(shù)足以勝任本文研究涉及的數(shù)據(jù)量。JSP 是 Java 服務(wù)器頁面,是用來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯,它將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和現(xiàn)實分離,支持可重用的基于組件的設(shè)計,使基于 Web 的應(yīng)用程序的開發(fā)變得迅速、容易。本文將 Java 與 SQL 相結(jié)合, 利用堆棧原理,將數(shù)據(jù)可視化動態(tài)地展示于用戶面前,更直觀方便地體現(xiàn)了數(shù)據(jù)的說服力。