ios - 更改 Google map 大小 iOS Swift

标签 ios google-maps swift

我找不到任何相关信息,所以我才来问。当我使用谷歌在其网站上提供的代码时,我在 Controller 中获得全屏 map 。我希望能够在容器中显示它(固定宽度和高度)。

我正在使用 swift,非常感谢您的帮助。下面是我从google中提取的代码:

Override func viewDidLoad() {
        super.viewDidLoad()

        var camera = GMSCameraPosition.cameraWithLatitude(-33.86,
            longitude: 151.20, zoom: 2)
        var mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
        mapView.myLocationEnabled = true
        self.view = mapView

        var marker = GMSMarker()
        marker.position = CLLocationCoordinate2DMake(-33.86, 151.20)
        marker.title = "Sydney"
        marker.snippet = "Australia"
        marker.map = mapView

        // Do any additional setup after loading the view.
    }

最佳答案

您的 map 将与您正在使用的 View 一样大。您有 2 个选择。

  • 1
    创建特定大小的 subview 并将该 View 用于 GMSMapView,与您的操作方式相同。
  • 2
    而不是将 GMSMapView 分配给某些 View 使用

    view.insertSubview(mapView, atIndex:0)
    

    请记住,在这种情况下,您必须为 GMSMapView 创建一个框架

    var mapView = GMSMapView.mapWithFrame(CGRectMake(...))
    

    这样做的好处是,如果您愿意,您可以在 map 上方添加其他组件(一些按钮、标签等),而第一种方法是不可能的。

编辑

这是我使用自动布局的方式。我在 Storyboard中创建了一些 View ,并对其进行了约束,以便它可以根据屏幕尺寸调整大小。 然后我初始化 map View 并使用自动调整大小 View 的大小并将我的 map View 插入到该 View 中。

mapView_ = [[GMSMapView alloc] initWithFrame:self.viewForMap.bounds];
mapView_.delegate = self;
mapView_.camera = camera;
[self.viewForMap insertSubview:mapView_ atIndex:0];

是的,我知道这是 Objective-C,但这只是一个示例。

关于ios - 更改 Google map 大小 iOS Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29162063/

相关文章:

r - 如何在 R 中绘制多种颜色的多段线?

javascript - 谷歌缩放以适合该页面上的所有标记

android - Google API 为 Android 抛出 no-crunch 错误

ios - 在 Swift 中的 View Controller 之间传递数据

c# - MonoTouch iOS应用程序无法在设备目录中找到文件-在模拟器上工作

android - 我可以包含一个自动完成和跨平台(iOS/Android)的字符串文件吗?

ios - 核心数据谓词 SQL 无法解析

ios - UIView.animateWithDuration 不是动画 Swift(再次)

ios - 如何使用用户键入消息更改 UILabel 文本

objective-c - Objective C 语法查询