仿链家地图找房_iOS地图找房、周边(仿链家、安居客等地图找房)-高德地图-OC...
最近寫了一個類似鏈家地圖找房功能。因為要求的是用高德地圖,查了很多資料,找不到合適的參考資源,百度地圖倒是一大堆。小白玩家,浪費了很多時間,決定寫個Demo。主要是根據(jù)功能實現(xiàn)過程一步一步進(jìn)行展示。(最新更新時間:2020.06.07? ? Q:995216390? Demo有問題可聯(lián)系我)
主體思路
主要使用的幾個方法(類似于tableView重用機(jī)制):
- (MAAnnotationView*)mapView:(MAMapView*)mapView viewForAnnotation:(id)annotation(大頭針繪制)
- (void)mapView:(MAMapView*)mapView didSelectAnnotationView:(MAAnnotationView*)view(點擊大頭針)
- (void)mapView:(MAMapView*)mapView mapDidZoomByUser:(BOOL)wasUserAction(縮放結(jié)束后調(diào)用,可以根據(jù)wasUserAction判斷是否是用戶手動縮放)
Demo僅供參考,本人小白,代碼質(zhì)量請自行擦亮雙眼。查看Demo需要先用cocoaPods集成高德等第三方庫。所需庫已經(jīng)在Podfile里面寫好了,使用的時候只需要pod install 即可運行。接下來走兩張效果圖:
主顯示圖
小區(qū)房源圖
復(fù)雜的地方并不是大頭針的繪制,而是數(shù)據(jù)的篩選。實際開發(fā)會根據(jù)戶型、價格等影響所展示的數(shù)據(jù)。所以數(shù)據(jù)請求這塊一定得封裝好。具體實現(xiàn)以及方法用途,注釋寫的很清楚,這里不再贅述。這里主要解釋一下區(qū)間劃分(以Demo為例,所在地為上海)。
高德的縮放級別為3-19。當(dāng)點擊地圖找房進(jìn)入地圖頁面,設(shè)置縮放級別為11,可以顯示整個上海各個區(qū)域標(biāo)注點(如:徐匯、松江、寶山等區(qū)),暫定義為(級別1)加以區(qū)分。點擊徐匯則需要展示徐匯區(qū)域標(biāo)注點,如龍華、上海南站、植物園等,定義為(級別2)。點擊龍華則展示龍華區(qū)域所有小區(qū)名稱和對應(yīng)房源數(shù)量(如圖:徐匯苑(2))(級別3)。點擊徐匯苑則需要展示其內(nèi)的兩套可售房源。
縮放級別說明:
3-13? --->? 11? ? 級別1
13-15 --->? 14? ?級別2
15-19 --->? 16? ?級別3
打開地圖,當(dāng)前縮放級別為11。聲明一變量nowZoom用來記錄當(dāng)前設(shè)置的縮放級別,nowZoom = 11。當(dāng)用戶手動縮放地圖,如果縮放級別在3-13之間,不處理數(shù)據(jù)。當(dāng)縮放級別為13-15之間,則設(shè)置縮放級別為14(跳轉(zhuǎn)級別2),更新數(shù)據(jù)源,更新nowZoom為14 ,設(shè)置中心點經(jīng)緯度,刷新地圖。同理,當(dāng)前設(shè)置的縮放級別為nowZoom等于14時,如果用戶縮放結(jié)束后,當(dāng)前縮放級別在13-15之間則不處理,如果在3-13之間,則需要展示整個上海區(qū)域數(shù)據(jù)(級別1)。設(shè)置nowZoom為11,更新數(shù)據(jù)源并刷新地圖,依此論推。至于縮放級別區(qū)間參數(shù)從哪兒來的,我只能說模仿鏈家一點點實驗獲取的參數(shù),并不準(zhǔn)確,需要根據(jù)項目具體情況而定。
地圖周邊 有時間的話會補(bǔ)上,效果圖如下。小白日常筆記。大神見諒哈。
周邊
總結(jié)
以上是生活随笔為你收集整理的仿链家地图找房_iOS地图找房、周边(仿链家、安居客等地图找房)-高德地图-OC...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。