2016-05-16 50 views
1

我试图使用Google地图SDK显示我当前位置(加州伯克利)的地图作为焦点,但无论我放入什么纬度/经度,它总是显示欧洲如下图所示:GMS地图视图总是显示欧洲

enter image description here

这里是地图视图代码:

let camera = GMSCameraPosition.cameraWithLatitude(37.8750360, longitude: -122.2573240, zoom: 1) 
    mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera) 
    mapView.myLocationEnabled = true 
    mapView.delegate = self 

我做我的应用程序的其他部分非常类似的事情,但从来没有得到一个问题。如果有人知道如何解决这个问题,请告诉我!谢谢

+0

确保您不会覆盖经纬度 –

+0

@Sampath杜杜,我有同样的确切问题。你是如何解决这个问题的? –

回答

0

请确保您在真实设备上测试。不是模拟器, 如果您使用模拟器手动输入纬度和经度。

像这个 -

enter image description here

+0

问题是我没有使用当前位置。我正在使用特定的位置,但仍然无法正常工作。 –

0

您可以测试是在模拟器,以及,你可以改变位置,而无需输入经纬度长 的,你需要从您的Xcode改变位置(如上控制台请rifler下面的屏幕截图

enter image description here

+0

是的,但我没有使用我目前的位置。我正在使用具体的纬度和经度的特定位置。 –

+0

然后,您需要在模拟器上输入manully Lat-long,或者您可以将其设置为代码作为默认位置 –

0

也许这是因为你的MapView的框架设置为CGRectZero。这可能会导致地图的高度为零,宽度为零。

实例从这个tutorial基于:

override func viewDidLoad() 
{ 
let camera: GMSCameraPosition = GMSCameraPosition.cameraWithLatitude(37.8750360, longitude: -122.2573240, zoom: 1) 
mapView = GMSMapView.mapWithFrame(self.view.frame, camera: camera) 
mapView.camera = camera 
} 

检查这些相关的问题:

0

甚至在设置委托之前设置了你的视图(所以你的代码甚至没有附加到你的mapView实例)。解决这个问题是这样的:

1:确保已经定义了你GMSMapViewDelegate该类

2:设置您的代表第一

mapView.delegate = self 
mapView.myLocationEnabled = true 
let camera = GMSCameraPosition.cameraWithLatitude(37.8750360, longitude: -122.2573240, zoom: 1) 
mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)