2016-03-22 41 views
0

GMSCameraUpdate:fitBounds:withEdgeInsetsを使用してiOS GoogleマップSDKのズームレベルを変更したいとします。しかし問題は、私がGMSCameraUpdate:fitBounds:withEdgeInsetsを使用したときにGoogleマップがデフォルトのズームレベルを取っていることです。ここでは、withEdgeInsetsを使用して地図の位置を変更しています。どんな助けもありがとう。 以下は私の完全なコードです。iOS Google Map SDK:GMSCameraUpdateでGoogleマップのズームレベルを変更:fitBounds:withEdgeInsets

ここ
GMSCoordinateBounds *markerBounds = [[GMSCoordinateBounds alloc] initWithPath:gmsPath]; 
GMSCameraUpdate *updatedCamera = [GMSCameraUpdate fitBounds:markerBounds withEdgeInsets:UIEdgeInsetsMake(-500, 0, 0, 0)]; 
[mapView_ animateWithCameraUpdate:updatedCamera]; 

gmsPath[GMSMutablePath path]ための複数の座標が含まれています。

[mapView_ animateToZoom:10];を使用すると、withEdgeInsetsは機能しません。

googleとstackoverflowを検索しましたが、正しい結果が見つかりませんでした。

+0

上記の利用可能なスペースは、なぜあなたは-500のインセットを使うのですか? –

+0

Googleマップを画面の中央に移動するのではなく、TOPに移動する。私は画面のすべてのマーカーの中心を表示したくありません。 – user2706827

答えて

0

UIEdgeInsetsMakeで解決策が見つかりました。以下はその解決策です。

GMSCoordinateBounds *markerBounds = [[GMSCoordinateBounds alloc] initWithPath:gmsPath]; 
GMSCameraUpdate *updatedCamera = [GMSCameraUpdate fitBounds:markerBounds withEdgeInsets:UIEdgeInsetsMake(44, 0, self.view.frame.size.height - 180, 0)]; 
[mapView_ animateWithCameraUpdate:updatedCamera]; 

-180はUITableView

0

エッジインセットを使用して同じ効果を得るのではなく、使用可能なスペースに合わせてマップのサイズを変更する必要があります。特に地図のサイズを変更すると、Googleロゴが表示されます(これはSDKを使用するための要件です)。

これをしたくない場合は、UIEdgeInsetsMake(0, 0, 500, 0)のようなものを使用する必要があります。すなわち、下端に正のインセットがあり、上端に負のインセットがありません。 500をハードコーディングする代わりに、テーブルの高さ(ポイント単位)を使用する必要があります。

+0

私の場合、 'UIEdgeInsetsMake'が問題を解決します。ズームレベルを変更するだけです'UIEdgeInsetsMake'を使用せずにマップ自体のサイズを変更せずに代替ソリューションがありますか? – user2706827

関連する問題