8

GoogleMapsを含むiOSアプリケーションを開発しています。そして、iOS用のGoogleMapsSDKの実装プロセスはまだ完了しています。

しかし、地図上にルート全体を表示するためのGMSCameraズームの計算方法を知りたいです。

Apple Mapでは、おそらくスパンを使用します。しかし、GoogleMapsSDKにはスパンがありません。

アドバイスをお願いします。

4

7 に答える 7

3

リーの方法は正しいが、数学は正しくない、ズームの Google マップ ios SDK ドキュメントに基づく

ズーム レベルを 1 上げると、画面上の世界の幅が 2 倍になります。したがって、ズーム レベル N では、ワールドの幅は約 256 * 2^N です。つまり、ズーム レベル 2 では、ワールド全体の幅は約 1024 ポイントです。ズーム レベルは整数である必要はないことに注意してください。マップで許可されるズーム レベルの範囲は、場所、マップの種類、画面サイズなど、さまざまな要因によって異なります。

ズームを計算するための計算は、

zoom = log2(360 * mapView.bounds.size.width/ longitudeDelta) - 8;
于 2013-03-05T02:56:55.953 に答える
3

これは、「Google 互換」である MKMapView から zoomLevel を計算するときに役立つ関数です。

- (NSInteger)getZoomLevel
{
        MKMapView *map = (MKMapView *)self.mapView;
        CLLocationDegrees longitudeDelta = map.region.span.longitudeDelta;
        CGFloat mapWidthInPixels = map.bounds.size.width;
        double zoomScale = longitudeDelta * 85445659.44705395 * M_PI / (180.0 * mapWidthInPixels);
        double zoomer = 20 - log2(zoomScale);
        if ( zoomer < 0 ) zoomer = 0;

        return (NSInteger)zoomer;
}

代わりに座標を取得して渡すことができれば、問題ありません。

于 2013-01-18T09:01:52.810 に答える
1

私はここに同様の質問への回答を投稿しました:

iOS用のグーグルマップSDKでRegionを設定する方法は?

Leeの答えと同様のアプローチを使用します。緯度/経度をピクセルに変換し、スケールを計算してから、ズームレベルを計算します。

于 2013-02-26T02:30:20.610 に答える
1

迅速:

//Create a path
let path = GMSMutablePath()

//for each point you need, add it to your path
let position = CLLocationCoordinate2DMake(latitude, longitude)
path.add(position)

//Update your mapView with path
let mapBounds = GMSCoordinateBounds(path: path)
let cameraUpdate = GMSCameraUpdate.fit(mapBounds)
mapView.moveCamera(cameraUpdate)
于 2016-11-02T22:03:42.290 に答える
0

GMSCoordinateBounds を使用します。座標、境界などのさまざまなパラメーターを使用して、マップを適合させることができます。

GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithPath:path];

https://developers.google.com/maps/documentation/ios/reference/interface_g_m_s_coordinate_bounds#a583bf55d8dd8cd10eec3473688f9d788

于 2014-11-17T17:20:17.047 に答える
0

ジンさん、あなたの計算は経度については正しいのですが、緯度についてはもう少しトリッキーである必要があります。メルカトル図法では、緯度と経度の扱いが異なります。ここに正しいコードを投稿しました: https://stackoverflow.com/a/16217785/2291425

于 2013-04-25T14:46:51.400 に答える