5

我正在尝试使用该fitBounds方法将我的所有标记都放入谷歌地图相机视图中。所以我存储了我的标记,markersArray并使用以下代码使用第一个和第二个标记初始化 GMSCoordinateBounds,markersArray其中工作正常。

然后,当我尝试从markersArrayusing添加第三个标记时,includingCoordinate我看不到边界在其值和地图中都没有更新任何内容,它是否相应地更改了相机。

奇怪的是,在Google maps SDK for iOS 文档中,它说 GMSCoordinateBounds “是不可变的,并且在构建后无法修改”。那有意义吗?构建它们后我不能改变边界吗?那么如何向边界添加更多坐标?

这是我的代码:

    GMSCoordinateBounds *bounds= [[GMSCoordinateBounds alloc] init];

    GMSMarker *marker1 = [markersArray objectAtIndex:0];
    GMSMarker *marker2 = [markersArray objectAtIndex:1];
    GMSMarker *marker3 = [markersArray objectAtIndex:2];

    bounds = [[GMSCoordinateBounds alloc] initWithCoordinate:marker1.position    coordinate:marker2.position];

    //Add the 3rd marker to the bounds
    [bounds includingCoordinate:marker3.position];

    GMSCameraUpdate *update = [GMSCameraUpdate fitBounds:bounds withPadding:600.0f];
    [mapView_ animateWithCameraUpdate:update];
4

1 回答 1

38

GMSCoordinateBounds includingCoordinate:方法返回一个包含原始边界和新位置组合的新边界,它不会修改您调用它的对象。

所以你需要这样的东西:

bounds = [bounds includingCoordinate: marker3.position];
于 2013-06-13T00:45:06.113 回答