程 彬,段浩宇,董煒華
(1.長(zhǎng)春師范大學(xué)城市與環(huán)境科學(xué)學(xué)院,吉林長(zhǎng)春 130032;2. 北京趣拿信息技術(shù)有限公司,北京 100080)
基于百度地圖API的購(gòu)房平臺(tái)系統(tǒng)開(kāi)發(fā)
程 彬1,段浩宇2,董煒華1
(1.長(zhǎng)春師范大學(xué)城市與環(huán)境科學(xué)學(xué)院,吉林長(zhǎng)春 130032;2. 北京趣拿信息技術(shù)有限公司,北京 100080)
本文基于百度地圖API,結(jié)合MYSQL數(shù)據(jù)庫(kù),使用PHP開(kāi)發(fā)小型地理信息系統(tǒng)(GIS)平臺(tái)。實(shí)踐證明,本平臺(tái)利用百度地圖API的Web服務(wù)API來(lái)計(jì)算生成對(duì)于房源位置周邊地物動(dòng)態(tài)的評(píng)價(jià)功能。實(shí)踐證明,平臺(tái)可操作性好,具有先進(jìn)性、實(shí)用性,不需要太多資金,維護(hù)方便。
百度地圖;API;WebGIS;購(gòu)房
網(wǎng)絡(luò)地理信息系統(tǒng)的特點(diǎn)有空間信息管理、分析、屬性數(shù)據(jù)的查詢(xún)和信息的動(dòng)態(tài)更新等[1]。建設(shè)傳統(tǒng)的地理信息系統(tǒng)平臺(tái)周期很長(zhǎng),建立的過(guò)程復(fù)雜,建設(shè)成本和維護(hù)成本很高[2],從人才、范圍和資金各個(gè)方面考慮,并不適合小型地理信息系統(tǒng)的開(kāi)發(fā)。筆者結(jié)合地理信息系統(tǒng)開(kāi)發(fā),將地理信息與房源信息相結(jié)合,基于百度地圖API接口,創(chuàng)建小型地理信息系統(tǒng)平臺(tái),以網(wǎng)絡(luò)地理信息系統(tǒng)的形式發(fā)布。
百度地圖API是由JavaScript語(yǔ)言編寫(xiě)的應(yīng)用程序接口,通過(guò)它可以輕松地在網(wǎng)站中構(gòu)建功能豐富、交互性強(qiáng)的地圖應(yīng)用[3]。百度地圖API不僅包含構(gòu)建地圖基本功能的各種接口和服務(wù), 而且百度地圖API的服務(wù)是免費(fèi)的,用戶(hù)只需要利用JavaScript語(yǔ)言就可以將地圖服務(wù)連接到自己的平臺(tái)中。因而,基于此構(gòu)建的小系統(tǒng)將擁有更低的開(kāi)發(fā)成本和維護(hù)成本,同時(shí)也降低了整個(gè)平臺(tái)的周期、成本和開(kāi)發(fā)風(fēng)險(xiǎn)。
平臺(tái)采用瀏覽器/服務(wù)器(B/S)模式,客戶(hù)可以通過(guò)瀏覽器在網(wǎng)上查詢(xún)自己想要的房源信息,管理者可以通過(guò)后臺(tái)管理頁(yè)面房源信息。房源信息數(shù)據(jù)存儲(chǔ)在MySQL中,通過(guò)PHP讀取數(shù)據(jù),百度地圖服務(wù)則借助于瀏覽器把數(shù)據(jù)展示在地圖上。平臺(tái)前臺(tái)分為四個(gè)模塊:用戶(hù)在線注冊(cè)、登錄功能、房源地圖服務(wù)功能、評(píng)價(jià)功能。
2.1 評(píng)價(jià)功能描述
評(píng)價(jià)功能是本平臺(tái)最為突出的功能,后臺(tái)在添加房源后還需要對(duì)房源作出相對(duì)應(yīng)的評(píng)價(jià),通過(guò)Place API 請(qǐng)求百度地圖服務(wù)器返回的數(shù)據(jù)進(jìn)行評(píng)價(jià)開(kāi)發(fā)的。Place API是一類(lèi)HTTP接口,用于返回查詢(xún)某個(gè)區(qū)域的某類(lèi)POI數(shù)據(jù),且提供單個(gè)POI的詳情查詢(xún)服務(wù),獲取返回json或xml格式的檢索數(shù)據(jù)。平臺(tái)是基于此開(kāi)發(fā)php語(yǔ)言的地圖應(yīng)用。評(píng)價(jià)功能包括兩方面,一方面是評(píng)價(jià)功能的評(píng)價(jià)字段自定義;另一方面是根據(jù)評(píng)價(jià)的字段請(qǐng)求服務(wù)器獲取返回json格式的檢索數(shù)據(jù)加以算法的評(píng)價(jià)。
2.1.1 評(píng)價(jià)字段自定義
房源的好壞主要看房子本身的價(jià)值,其次是房子的位置,房子位置的好壞是受到周?chē)鞣N因素而影響的,比如一個(gè)房子旁若有一個(gè)公園,這個(gè)房子的位置就是比較可心的。但是社會(huì)中每個(gè)人的需求各不相同,有的人認(rèn)為房子周?chē)泄珗@綠地好,有的人認(rèn)為有好的中小學(xué)校比較理想,這樣房源周邊的因素尤為重要,本平臺(tái)就是根據(jù)這個(gè)因素對(duì)周邊地物實(shí)時(shí)更新要求而作出的評(píng)價(jià)字段自定義。
2.1.2 檢索數(shù)據(jù)加以算法的評(píng)價(jià)
周邊地物的個(gè)數(shù)也是一個(gè)重要的評(píng)價(jià)標(biāo)準(zhǔn),比如房源周邊公交個(gè)數(shù)。通過(guò)提交房源周邊公交的請(qǐng)求,會(huì)返回周邊公交的個(gè)數(shù),個(gè)數(shù)是衡量的一個(gè)標(biāo)準(zhǔn),對(duì)于個(gè)數(shù)的衡量做了一個(gè)算法,將這些評(píng)價(jià)字段的個(gè)數(shù)的最大值和最小值統(tǒng)計(jì)出來(lái),最大值為10分,最小值為1分,評(píng)價(jià)字段個(gè)數(shù)根據(jù)此進(jìn)行百分比算法,如:(value-min+(max-min)/9)/ (max-min)/9。
2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)大型Web應(yīng)用程序的核心。本平臺(tái)采用MYSQL 5.0.51作為數(shù)據(jù)庫(kù), 根據(jù)平臺(tái)需求,建立 “GFPT”數(shù)據(jù)庫(kù)。
平臺(tái)創(chuàng)建之前,必須先設(shè)計(jì)系統(tǒng)數(shù)據(jù)庫(kù)的數(shù)據(jù)表,系統(tǒng)中的幾個(gè)主要數(shù)據(jù)表的結(jié)構(gòu)和作用如下:管理員表用來(lái)保存管理員賬號(hào)和密碼及登錄后臺(tái);用戶(hù)表用來(lái)保存平臺(tái)上注冊(cè)的用戶(hù)信息及用戶(hù)登錄;房源表用來(lái)保存房源信息;評(píng)價(jià)表用來(lái)保存從百度地圖的服務(wù)器請(qǐng)求回來(lái)的數(shù)據(jù)信息;地物表是用來(lái)保存管理員設(shè)置的字段信息;歷史記錄表是用來(lái)保存用戶(hù)瀏覽過(guò)的房源信息(表1-表6)。
本文以購(gòu)房平臺(tái)為例闡述地圖實(shí)現(xiàn)的過(guò)程。實(shí)現(xiàn)的功能主要包括地圖基礎(chǔ)實(shí)現(xiàn)和評(píng)價(jià)功能實(shí)現(xiàn),其中評(píng)價(jià)功能是本文的重點(diǎn)。
3.1 地圖基礎(chǔ)實(shí)現(xiàn)
地圖的基本功能實(shí)現(xiàn)包括建立地圖實(shí)例并對(duì)其進(jìn)行初始化;將標(biāo)準(zhǔn)地圖控件添加到地圖中,添加標(biāo)注等基本操作。
3.2 評(píng)價(jià)功能實(shí)現(xiàn)
3.2.1 評(píng)價(jià)字段添加與刪除
(1)添加
{//判斷提交是否為添加,是則執(zhí)行
header(’location:./type_manage.php?information=success’);//跳轉(zhuǎn)回頁(yè)面
exit;
}
(2)刪除
{ //判斷提交是否為刪除,是則執(zhí)行
header(’location:./type_manage.php?information=success’); //跳轉(zhuǎn)回頁(yè)面
exit;
}
3.2.2評(píng)價(jià)的算法
后臺(tái)通過(guò)程序生成字符串請(qǐng)求百度地圖服務(wù)器,即開(kāi)發(fā)者通過(guò)http形式發(fā)起檢索請(qǐng)求,獲取返回json或xml格式的檢索數(shù)據(jù)。字符串如下:
由于多次對(duì)百度服務(wù)器請(qǐng)求,所以本平臺(tái)把這個(gè)字符串寫(xiě)成函數(shù)方便多次調(diào)用,函數(shù)名為search,參數(shù)query為檢索的評(píng)價(jià)字段,radius為位置周邊的范圍半徑,local為位置坐標(biāo),函數(shù)如下:
{//圓形區(qū)域檢索
}//返回檢索區(qū)域內(nèi)評(píng)價(jià)字段的個(gè)數(shù)
函數(shù)內(nèi)的評(píng)價(jià)字段是不確定的,在執(zhí)行以上函數(shù)時(shí),字段需要從數(shù)據(jù)庫(kù)中實(shí)時(shí)的取出代碼如下:
{//判斷結(jié)果集中是否有數(shù)據(jù)
{//遍歷結(jié)果集
}
}
由于評(píng)價(jià)字段不確定,所以需要遍歷評(píng)價(jià)字段統(tǒng)計(jì)最大值和最小值代碼如下:
{//循環(huán)評(píng)價(jià)字段
{//循環(huán)評(píng)價(jià)字段
}//將最大值賦值數(shù)組
平臺(tái)把評(píng)價(jià)分為1-10,最大值為10,最小值為1,其他值則按照百分比計(jì)算代碼如下:
}
}}
{
{
}
}
本平臺(tái)在開(kāi)發(fā)時(shí)對(duì)于評(píng)價(jià)表字段的不確定性進(jìn)行了改進(jìn),字段需要實(shí)時(shí)提取更新,加大了開(kāi)發(fā)的難度,評(píng)價(jià)插入的字符串拼接要求更高,帶來(lái)的結(jié)果是平臺(tái)效率降低。為解決這個(gè)問(wèn)題,本平臺(tái)對(duì)評(píng)價(jià)功能采取在后臺(tái)進(jìn)行,直接寫(xiě)入數(shù)據(jù)庫(kù)的方式,以提高效率。基于百度地圖API 開(kāi)發(fā)的平臺(tái)有著更低的開(kāi)發(fā)成本和維護(hù)成本,不需要用戶(hù)單獨(dú)購(gòu)買(mǎi)地理信息系統(tǒng)相關(guān)的基礎(chǔ)軟件,也不需要用戶(hù)維護(hù)地理信息系統(tǒng)(GIS)服務(wù)器(相關(guān)維護(hù)由百度提供)。通過(guò)使用百度地圖API,降低了整個(gè)平臺(tái)的周期、成本和開(kāi)發(fā)風(fēng)險(xiǎn)。
[1]王紅崧,周海晏.基于百度地圖API的旅游地理信息系統(tǒng)開(kāi)發(fā)[J].現(xiàn)代計(jì)算機(jī):專(zhuān)業(yè)版,2012,23(8):60-63.
[2]杜傳明.百度地圖API在小型地理信息系統(tǒng)中的應(yīng)用[J].測(cè)繪與空間地理信息,2011,34(2):152-154.
[3]SEO之搜索引擎創(chuàng)建地圖[EB/OL].(2011-10-01)[2013-10-12].http://wenku.baidu.com/,2011-10.
2014-05-07
國(guó)家自然科學(xué)基金項(xiàng)目(31200407);長(zhǎng)春師范學(xué)院自然科學(xué)基金項(xiàng)目(長(zhǎng)師院自科合字[2010]第0117號(hào))。
程 彬(1973-),女,吉林長(zhǎng)春人,長(zhǎng)春師范大學(xué)城市與環(huán)境科學(xué)學(xué)院講師,從事遙感和地理信息系統(tǒng)研究。
董煒華(1978-),女,吉林長(zhǎng)春人,副教授,從事土壤動(dòng)物研究。
P208
A
2095-7602(2014)04-0086-05