国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

高德地圖iOSSDK限制地圖的縮放比例

2019-11-14 19:51:41
字體:
來源:轉載
供稿:網友

問題

高德地圖的iOS SDK 3D版中(v2.4.0), 顯示范圍在560m左右時建筑會呈現3D效果. 我們有沒有辦法可以限制地圖最小縮放到這個比例, 從而保證建筑始終使用3D效果顯示呢?

探索

高德地圖的MAMapView再怎么封裝也是個UIView, 通過加斷點很容易看出它的結構

很明顯, 地圖上的操作都是依賴UIGestureRecognizer來處理的. 為了限制地圖的交互, 我們只需要想辦法修改一下這些gesture的處理邏輯即可.

對于pinch操作它提供了pinchGesture:  一個直接的想法是繼承并重寫這個方法, 但總是有些略繁瑣.

一個gesture是可以綁定多個處理方法的, 我們可以選擇一個更hack的方法. UipinGestureRecognizer只有一個scale屬性是可讀寫的, 按理說地圖的縮放應該是直接根據這個屬性來調整的. 那么我們只要能夠讓這個值保持不變, 那就可以讓地圖也不再跟著縮放了. 結果證明這么做是沒問題的.

核心代碼如下:

- (void)handlePinch:(UIPinchGestureRecognizer *)recognizer{    if (recognizer.state == UIGestureRecognizerStateBegan) {        _lastPinchScale = recognizer.scale;    }    auto meter = [_map metersPerPointForCurrentZoomLevel];    if (recognizer.velocity < 0 && meter > MaxMeter) {        _builtinPinch.scale = _lastPinchScale;    }    _lastPinchScale = _builtinPinch.scale;}

效果圖:

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 焉耆| 汶川县| 平泉县| 昭平县| 牟定县| 鄄城县| 太仆寺旗| 固镇县| 上杭县| 镇平县| 巴里| 凤翔县| 温泉县| 灵武市| 乌兰浩特市| 米脂县| 岗巴县| 略阳县| 广灵县| 福安市| 平泉县| 武夷山市| 昆山市| 盖州市| 任丘市| 马鞍山市| 松阳县| 玛沁县| 安乡县| 灯塔市| 沾益县| 班玛县| 西贡区| 罗城| 长垣县| 吉首市| 普兰县| 郎溪县| 邢台市| 盘锦市| 江阴市|