如何在谷歌地图上快速更改我的位置按钮的位置

Posted

技术标签:

【中文标题】如何在谷歌地图上快速更改我的位置按钮的位置【英文标题】:How to change the location of myLocationButton of Google Map in swift 【发布时间】:2016-08-12 07:58:49 【问题描述】:

我是 swift 的新手,我正在制作一个应用程序,我在其中使用适用于 ios 的 Gogle Map SDK。我使用了 myLocationButton,它最初设置在右下角。我只是想改变它的位置。

我想将 MyLocationButton 放置在当前显示地球按钮图像的位置。

提前致谢。

【问题讨论】:

非常感谢@Anbu 投票 【参考方案1】:

Google Maps SDK for iOS 提供了一些内置的 UI 控件,这些控件类似于 Google Maps for iOS 应用程序中的控件。每个控件都有一个相对于地图边缘的预定位置。您可以通过填充地图将控件从边缘移开。 Google 地图旨在填充 GMSMapView 定义的整个区域。要向地图添加填充,请创建一个 UIEdgeInsets 对象并将其传递给 GMSMapView.padding 属性。

// Insets are specified in this order: top, left, bottom, right
UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0);
mapView.padding = mapInsets;

有关更多信息,您可以查看此相关 SO 问题 26968364 和 16879694

【讨论】:

【参考方案2】:
mapView.padding = UIEdgeInsets(top: 0, left: 0, bottom: 10, right:0)

Swift 3.0,更改按钮位置

【讨论】:

【参考方案3】:

Swift 2.3:仅移动位置按钮的解决方案。我正在使用 pod 'GoogleMaps', '~> 2.1'。

for object in mapView.subviews 
    if object.theClassName == "GMSUISettingsView" 
        for view in object.subviews 
            if view.theClassName == "GMSx_QTMButton" 
              var frame = view.frame
              frame.origin.y = frame.origin.y - 110 // Move the button 110 up
              view.frame = frame
            
        
    

获取类名的扩展。

extension NSObject 
  var theClassName: String 
    return NSStringFromClass(self.dynamicType)
  

我会尽快将此代码更新到 Swift 3.0。 :)

Swift 4.0:

public extension NSObject 
    public var theClassName: String 
        return NSStringFromClass(type(of: self))
    

【讨论】:

以上是关于如何在谷歌地图上快速更改我的位置按钮的位置的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 android studio 更改 Google 地图中“我的位置”按钮的位置

我可以在 Android 地图中更改我的位置按钮吗

如何在谷歌地图应用程序中从另一个位置显示当前位置?

在谷歌地图上隐藏其他位置

在谷歌地图中将当前位置映射到目的地位置

怎么在谷歌地图上做标记呀