趙建保
(1.廣東農(nóng)工商職業(yè)技術(shù)學(xué)院,廣東 廣州510507)
不動產(chǎn)具有地理位置固定、個別性、耐久性和供給數(shù)量的有限性等自然特性,又具有價值量大、用途多樣性、權(quán)益受限性、變現(xiàn)性差和保值增值性等社會經(jīng)濟特性。地理位置是決定不動產(chǎn)價值的根本因素,不動產(chǎn)管理分為物業(yè)管理、資產(chǎn)管理、組合投資管理3個層次[1,2]。
地理信息系統(tǒng)是分析和處理空間數(shù)據(jù)不可或缺的工具。系統(tǒng)開發(fā)方式有2種:一是采用標(biāo)準(zhǔn)的GIS電子地圖開發(fā)平臺進行開發(fā),如 ArcGIS,MapXtreme和SuperMap平臺,這種方式需購買開發(fā)平臺和電子地圖,二次開發(fā)工作量較大。二是采用Google Maps進行開發(fā)。Google Maps提供了免費開放的電子地圖和強大的地方信息數(shù)據(jù)庫,Google Maps JavaScript API編程接口提供了大量實用工具,支持處理地圖,支持向地圖添加內(nèi)容,實現(xiàn)位置定位、個性化圖示標(biāo)記、設(shè)置標(biāo)簽、設(shè)置提示、地圖縮放、平移等功能[3],目前使用發(fā)行版第3版。運用Google JavaScript API可構(gòu)建位置服務(wù)、地理空間數(shù)據(jù)的互動可視化內(nèi)容和自定義地圖等地圖應(yīng)用[4]。空間數(shù)據(jù)是不動產(chǎn)管理信息化的基礎(chǔ),在Google地圖和Google Maps JavaScript API基礎(chǔ)上,加載企業(yè)不動產(chǎn)地理信息,增加不動產(chǎn)的屬性數(shù)據(jù),提供空間基礎(chǔ)數(shù)據(jù)服務(wù)、經(jīng)營管理數(shù)據(jù)服務(wù)和決策支持服務(wù),實現(xiàn)對不動產(chǎn)的直觀高效科學(xué)管理,能滿足企業(yè)不動產(chǎn)管理信息化和可視化的應(yīng)用需求。
支持在Google Maps上繪制不動產(chǎn)矢量圖。用戶可直接在地圖上繪制不動產(chǎn)矢量圖,系統(tǒng)自動采集矢量圖經(jīng)緯度數(shù)據(jù),并據(jù)此生成矢量圖,通過在地圖上疊加不動產(chǎn)矢量圖層,為不動產(chǎn)管理的各級人員提供一個統(tǒng)一的電子地圖入口,實現(xiàn)不動產(chǎn)在Google地圖上的可視化顯示。
支持在不動產(chǎn)矢量圖上添加屬性信息功能??勺芳禹椖棵Q、項目地址、項目用途、面積、類別等信息,實現(xiàn)不動產(chǎn)空間數(shù)據(jù)與屬性數(shù)據(jù)的聯(lián)合操控。
支持不動產(chǎn)的信息分類查詢和明細查詢功能。支持按不動產(chǎn)類型分類查詢,支持對特定不動產(chǎn)明細信息查詢。
提供不動產(chǎn)的分布情況漫游功能。
支持地圖基本操作,如地圖放大縮小、不動產(chǎn)分類顯示等功能。
系統(tǒng)體系結(jié)構(gòu)采用B/S架構(gòu)模式,包括3層體系結(jié)構(gòu),分為表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)層,分別對應(yīng)瀏覽器、Web服務(wù)器和數(shù)據(jù)庫服務(wù)器3層體系架構(gòu),如圖1所示。Web瀏覽器通過Web服務(wù)器獲取地圖服務(wù)和不動產(chǎn)信息數(shù)據(jù)。Apache Web服務(wù)器從Google Maps服務(wù)器獲取地圖數(shù)據(jù)及地方數(shù)據(jù)庫數(shù)據(jù),從MySQL數(shù)據(jù)庫獲取不動產(chǎn)屬性數(shù)據(jù),實現(xiàn)了不動產(chǎn)矢量圖添加、矢量圖更新、矢量圖分類漫游、屬性數(shù)據(jù)維護更新等操作。MySQL數(shù)據(jù)庫服務(wù)器存儲系統(tǒng)不動產(chǎn)屬性數(shù)據(jù),Google Maps服務(wù)器提供GIS服務(wù)和地圖數(shù)據(jù)服務(wù)[5-8]。
數(shù)據(jù)庫主要包括不動產(chǎn)信息表和用戶信息表,其中不動產(chǎn)信息表結(jié)構(gòu)如表1所示。
圖1 系統(tǒng)架構(gòu)
表1 不動產(chǎn)信息表
前端開發(fā)采用HTML5+CSS+JavaScript技術(shù),開發(fā)環(huán)境為WAMP,即操作系統(tǒng)為Windows 2003,Web服務(wù)器為Apache,數(shù)據(jù)庫服務(wù)器為MySQL,開發(fā)語言為PHP,使用AJAX處理客戶端與服務(wù)器端的數(shù)據(jù)通信。系統(tǒng)實現(xiàn)過程包括不動產(chǎn)數(shù)據(jù)采集、Google地圖界面定制、不動產(chǎn)矢量圖的顯示與交互事件添加、不動產(chǎn)添加、修改和刪除模塊開發(fā)、不動產(chǎn)明細查詢、不動產(chǎn)分類漫游模塊開發(fā)等過程。
不動產(chǎn)數(shù)據(jù)采集包括空間屬性數(shù)據(jù)采集和產(chǎn)權(quán)屬性數(shù)據(jù)采集2項工作。空間屬性數(shù)據(jù)采集內(nèi)容有地塊坐落、測量面積、層次等級、地段牌號等[9]。產(chǎn)權(quán)屬性數(shù)據(jù)采集內(nèi)容有名稱、編號、地址、開發(fā)單位、建設(shè)單位、用途、許可證信息等產(chǎn)權(quán)屬性數(shù)據(jù)。
地圖界面定制模塊主要實現(xiàn)將頁面劃分為交互控制區(qū)和地圖顯示區(qū),#map-canvas提供了地圖顯示的容器。首先使用 聲明將應(yīng)用聲明為HTML5,采用DIV+CSS布局技術(shù)將頁面分成左右兩欄,使用 script 標(biāo)記引用 Maps API JavaScript,其代碼是:
然后,定義初始化函數(shù)initialize,定義地圖選項mapOptions設(shè)置地圖中心點經(jīng)緯度、縮放級別和地圖類型等,再使用Map類的對象依據(jù)地圖選項創(chuàng)建嵌入#map-canvas的地圖對象,并設(shè)置Maps API為異步加載方式,代碼如下[10]:
var map;var myLatlng=[];var polygon=[];var coords=[];
function initialize() {
var myLatlng = new google.maps.LatLng(23. 1059047 2563574,113.32382440567017); var mapOptions = {zoom:17,center:myLatlng};
map = new google.maps.Map(document.getElement ById('map-canvas'),mapOptions);
google.maps.event.addDomListener(window, 'load',initialize);
嵌入Google Maps地圖后,地圖界面默認提供了平移、縮放和地圖與衛(wèi)星地圖切換功能。
在地圖初始化函數(shù)執(zhí)行前,從MySQL數(shù)據(jù)庫遍歷所有不動產(chǎn)數(shù)據(jù),對于矢量圖經(jīng)緯度數(shù)據(jù)$myarr[‘pshape’]需先按分隔符&拆分為坐標(biāo)點,構(gòu)建生成矢量圖的坐標(biāo)數(shù)組coords,通過Polygon類并以coords數(shù)組為參數(shù)構(gòu)建不動產(chǎn)矢量圖。setMap()方法用于在地圖上顯示該矢量圖,再對該矢量圖添加鼠標(biāo)事件mouseover,實現(xiàn)當(dāng)鼠標(biāo)移動到矢量圖上時執(zhí)行javascript定義的showHint函數(shù)。該函數(shù)定義在不動產(chǎn)明細查詢模塊中,采用Ajax技術(shù)顯示不動產(chǎn)屬性數(shù)據(jù),實現(xiàn)不動產(chǎn)矢量圖顯示、產(chǎn)權(quán)數(shù)據(jù)明細查詢功能,達到不動產(chǎn)空間數(shù)據(jù)與屬性數(shù)據(jù)聯(lián)合操控的目的,代碼如下:
不動產(chǎn)添加模塊實現(xiàn)不動產(chǎn)矢量圖輪廓點經(jīng)緯度的捕捉和不動產(chǎn)屬性數(shù)據(jù)輸入,不動產(chǎn)屬性數(shù)據(jù)輸入通過HTML 表單來實現(xiàn),其中項目名稱pname、項目編號pnumID、項目地址paddress、開發(fā)單位pdeveloper、建設(shè)單位perector、項目用途pfunction、面積parea均為文本框類型。不動產(chǎn)類型ptype輸入采用下拉列表項實現(xiàn),輪廓數(shù)據(jù)pshape輸入用多行文本框來實現(xiàn),其表單代碼為:。除輪廓圖經(jīng)緯度數(shù)據(jù)外,其他數(shù)據(jù)直接從鍵盤輸入,輪廓數(shù)據(jù)則直接從地圖界面中捕捉,實現(xiàn)的關(guān)鍵在于為地圖添加鼠標(biāo)單擊事件并把當(dāng)前鼠標(biāo)單擊點經(jīng)緯度數(shù)據(jù)直接填入輪廓數(shù)據(jù)表單pshape,其不動產(chǎn)經(jīng)緯度捕捉代碼是:
地圖應(yīng)用頁面刷新需重新下載地圖和再次執(zhí)行后臺程序,程序設(shè)計時應(yīng)盡量控制頁面刷新次數(shù),提高系統(tǒng)響應(yīng)性能。對于不動產(chǎn)信息提示功能,采用Ajax能顯著地提高系統(tǒng)響應(yīng)性能。實現(xiàn)信息提示的Ajax代碼為:
將不動產(chǎn)按照地塊、商業(yè)地產(chǎn)、住宅和其他4種類型進行分類管理和篩選,表單部分采用HTML表單的復(fù)選框,通過onchange檢測復(fù)選框的變化,然后再通過Ajax刷新不動產(chǎn)矢量圖的顯示。
圖2 系統(tǒng)操作界面
系統(tǒng)操作界面如圖2所示,位于左側(cè)的交互控制區(qū)提供了分類漫游導(dǎo)航鏈接、不動產(chǎn)插入表單和不動產(chǎn)明細信息提示的顯示區(qū)域,位于頁面右側(cè)的是地圖顯示區(qū)。將不動產(chǎn)數(shù)據(jù)輸入不動產(chǎn)添加表單,調(diào)整地圖縮放級別,然后直接在不動產(chǎn)輪廓上單擊采集輪廓點經(jīng)緯度數(shù)據(jù),表單提交后屬性數(shù)據(jù)和經(jīng)緯度數(shù)據(jù)都保存到MySQL數(shù)據(jù)庫中。不動產(chǎn)的顯示及屬性數(shù)據(jù)通過查詢數(shù)據(jù)庫得到。當(dāng)鼠標(biāo)移動到矢量圖時,在不動產(chǎn)信息區(qū)顯示該不動產(chǎn)的屬性數(shù)據(jù),信息直觀全面,也可以通過鏈接刪除和修改當(dāng)前不動產(chǎn)信息。不動產(chǎn)分類查詢表單提供了按不動產(chǎn)類型進行分類查詢,也實現(xiàn)了地圖基本操作和不動產(chǎn)漫游功能。
將不動產(chǎn)地理位置信息與傳統(tǒng)不動產(chǎn)管理系統(tǒng)相結(jié)合,基于Google Maps、PHP+MySQL和網(wǎng)站前端技術(shù),分析不動產(chǎn)管理業(yè)務(wù)需求,進行系統(tǒng)架構(gòu)設(shè)計,編程實現(xiàn)了系統(tǒng)的關(guān)鍵模塊。系統(tǒng)能夠彌補傳統(tǒng)不動產(chǎn)信息系統(tǒng)缺乏地理屬性的缺陷,具有不動產(chǎn)可視化程度高、信息與地理空間信息融合、可擴展性強等特點。能為管理人員提供不動產(chǎn)的分布狀況及詳細信息,為客戶提供可視化的不動產(chǎn)分布及漫游功能,提供了一種較為便捷可行的不動產(chǎn)管理系統(tǒng)建設(shè)方案。
[1]王豐. 不動產(chǎn)押品管理信息系統(tǒng)研究[D]. 南京:南京師范大學(xué),2012
[2]楊福云. 提升廣東農(nóng)墾城市不動產(chǎn)經(jīng)營效率之探討[J]. 中國農(nóng)墾,2008(10): 51-52
[3]錢慧如,羅榮良,朱勇. Google Maps在渠道管理系統(tǒng)中的應(yīng)用[J]. 商場現(xiàn)代化,2010(9):22
[4]Google. Google Maps API[EB/OL]. https://developers.google.com/maps/?hl=zh-CN,2013-12-27
[5]唐桂文,譚衍濤. 基于AJAX和Google Maps API的WebGIS開發(fā)研究[J]. 測繪與空間地理信息,2013(8): 8-11
[6]陳驥,宋瑞霞,陳舜湖. 基于Google Maps的畜禽養(yǎng)殖場定位系統(tǒng)[J]. 河北農(nóng)業(yè)科學(xué),2011(2): 137-138
[7]楊小晴,羅畏,黃文嘉. 基于Google Map的樓盤信息發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)[J]. 測繪工程,2011(2): 49-52
[8]梁智學(xué). 基于Google Maps API的旅游信息系統(tǒng)設(shè)計與實現(xiàn)[J].計算機與現(xiàn)代化,2013(7): 208-211
[9]李柏,李平. 不動產(chǎn)統(tǒng)一登記后的測繪對策研究[J].山西建筑,2013,39(28):232-233
[10]Google .Google Maps Javascript API V3 Reference[EB/OL].https://developers.google.com/maps/documentation/javascript/reference?hl=zh-CN,2013-08-08