高德地圖iOS SDK限制地圖的縮放比例

來源:互聯網
上載者:User

標籤:style   blog   http   io   color   os   使用   sp   for   

問題

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

探索

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

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

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

一個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;}

:

 

高德地圖iOS SDK限制地圖的縮放比例

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.