3

iOS 用のアプリを開発していますが、Google マップ SDK で問題が発生しています。

私のアプリは座標のリストを取得し、それらの間にポリラインと開始マーカーと終了マーカーを描画します。現時点では、これはすべて正常に行われています。私が今やろうとしているのは、パス全体を含むようにカメラを更新することです。現在、私のコードは次のとおりです。

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:[[sharedModel startNode] nodeLocation].latitude
                                                        longitude:[[sharedModel startNode] nodeLocation].longitude
                                                             zoom:18];
mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];

GMSMutablePath *path = [GMSMutablePath path];
for (int i = 0; i < [results count]; i++)
{
    [path addCoordinate:[[results objectAtIndex:i] nodeLocation]];
}
GMSPolyline *polyline = [GMSPolyline polylineWithPath:path];
polyline.strokeWidth = 10;
polyline.map = mapView_;

GMSMarker *marker1 = [[GMSMarker alloc] init];
marker1 = [GMSMarker markerWithPosition:[[results objectAtIndex:0] nodeLocation]];//[[sharedModel startNode] nodeLocation]];
marker1.title = @"Start";
marker1.map = mapView_;

GMSMarker *marker2 = [[GMSMarker alloc] init];
marker2 = [GMSMarker markerWithPosition:[[results lastObject] nodeLocation]];
marker2.title = @"Finish";
marker2.map = mapView_;

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

GMSCameraUpdate *update = [GMSCameraUpdate fitBounds:bounds];

[mapView_ moveCamera:update];
self.view = mapView_;

これを実行すると、マーカーとポリラインはすべて正しい位置に表示されますが、マップは移動できる最大距離までズームアウトされます (パスの中心にあります)。何かアドバイス?

4

1 に答える 1

2

このコードは にありloadViewますか? でマップ ビューを作成し、loadView後でカメラを更新してみてviewDidLoadくださいviewWillAppear

この質問への回答に基づいて、カメラの更新方法が適切に機能しない可能性があると考えていますloadView

境界の適合が期待どおりに機能しない

于 2013-11-12T13:37:51.023 に答える