【问题标题】:GMSCoordinateBounds IncludingCoordinates not working properly in Google Maps SDK for iOSGMSCoordinateBounds 包括坐标在 Google Maps SDK for iOS 中无法正常工作
【发布时间】:2013-06-08 21:08:58
【问题描述】:

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

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

奇怪的是,在Google maps SDK for iOS docs 中,它说 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];

【问题讨论】:

    标签: ios6 google-maps-markers google-maps-sdk-ios fitbounds


    【解决方案1】:

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

    所以你需要这样的东西:

    bounds = [bounds includingCoordinate: marker3.position];
    

    【讨论】:

    • 感谢它现在工作正常。很明显,我问起来很尴尬。
    • 你刚刚拯救了我的一天!谢谢
    • google 怎么没有包含一个接收位置数组并返回适合所有位置的边界的方法?现在实现的方式强制您仅使用两个位置对其进行初始化,然后循环其余调用包括坐标。我错过了更好的方法吗?
    • 你是个救命恩人,我没注意返回值,thnx
    • 这里和我一样哈哈非常好
    猜你喜欢
    • 2014-12-10
    • 2019-04-21
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多