2016-07-01 8 views
0

私はMGLMapViewに表示したいMGLCoordinateBoundsを作成しています。私はいくつかのパディングを提供するためにエッジのインセットを使用しようとするまですべてが問題ありません。すべての面でエッジのインセットが100pxのsetVisibleCoordinateBounds(_:, edgePadding:, animated:)を呼び出すのは問題ありません。ただし、エッジのインセットをすべての側で200ピクセルに設定すると、マップビューは(0、0)に移動します。地図のズーム率がすべてのものに合うように変わることが予想されました。 FWIW、私が使用しているiPhone 6では、マップビューは653x750ピクセルで、インセットはマップビューサイズを超えていません。マップの座標の境界をデフォルトに設定する(0、0)

私は100pxのパディングで暮らすことができましたが、私にとって懸念するのは、この問題がいつ、なぜ発生するのかわかりません。 MGLCoordinateBoundsの値に100pxのパディングで同じ問題がありますか?この問題を予測して回避する方法はありますか?

答えて

0

Deep downMGLCoordinateBoundsCLLocationCoordinate2Dに変換されます。ユニットに沿ったすべてが度です。

確認するには、100px200pxを度に変換していますか?

ご迷惑をおかけして申し訳ありません。 Mapviewの(0、0)へのリセットは困惑しています。

あなたは、私が変換していないよ


ズームレベルに基づいて、度でパディングを計算するために、いくつかの数学はtopBottomleftRight

let topBottom = // computation based on Zoom level, and horizontal screen resolution 
    let leftRight = // computation based on Zoom level, and vertical screen resolution 
    let edgeOffset = UIEdgeInsetsMake(top: topBottom, 
             left: leftRight, 
             bottom: topBottom, 
             right: leftRight) 
+0

のために関与しているパディング、のための提案を持っていること(setVisibleCoordinateBounds(_ :, edgePadding :, animated:) ')メソッドは、特にパディングに' UIEdgeInsets'を使用しているため、100pxと200pxの度合いを度にします。私が度に変換していた場合、 'setVisibleCoordinateBounds(_:、animated:)'を使うことができましたが、私が使っているメソッドでは必要ではないようです。 –

+0

EdgeInsetsが実装されていない可能性があります。テストコードはゼロのエッジのみをテストしました。機能のリクエストや問題をhttps://github.com/mapbox/mapbox-gl-native/ – RobLabs

+0

で報告できますか?Tomはちょうどこの回答を見つけました。それはあなたが探しているものに関連していますか? http://stackoverflow.com/questions/38946722/how-to-zoom-mapbox-using-swift-to-a-given-radius-in-kilometers/38946880#38946880 – RobLabs

関連する問題