屏幕未缩放到右侧坐标 - swift google 地图 api

screen not zoom to right coordinates - swift google map api

当使用 GMSMap 获取动态 google 地图时,地图不显示我给他的当前位置并且不缩放地图

import UIKit
import GoogleMaps
import MapKit

class LocationItemViewController: UIViewController,GMSMapViewDelegate, CLLocationManagerDelegate {

@IBOutlet weak var lblInfo: UILabel!    
@IBOutlet weak var lblTitle: UILabel!
@IBOutlet weak var viewMap: UIView!
@IBOutlet weak var googleMapView: GMSMapView!


override func viewDidLoad() {

    super.viewDidLoad()     
    let latitude = (String(format:"%.02f", locationItem.itemLatitude ) as NSString).doubleValue
    let longgitude = (String(format:"%.02f", locationItem.itemLongitude) as NSString).doubleValue
    let camera = GMSCameraPosition.cameraWithLatitude(latitude,longitude: longgitude, zoom: 7)

    let mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
    mapView.myLocationEnabled = true
    self.googleMapView = mapView
    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2DMake((locationItem.itemLatitude as NSString).doubleValue, (locationItem.itemLongitude as NSString).doubleValue)
    marker.title = "somelocation"
    marker.snippet = "anywhere"
    marker.map = mapView
    lblTitle.text = locationItem.itemName
    lblInfo.text = locationItem.itemAddress
}

我在应用委托

中找到 GMSServices.provideAPIKey("YOUR_API_KEY")

要显示您的当前位置,您必须执行与我们为 Apple 地图访问我们的位置所做的相同的操作。

在 plist 中你必须添加 2 个条目并获得用户的许可

  1. NSLocationWhenInUseUsageDescription
  2. NSLocationAlwaysUsageDescription

查看此 link 了解更多详情

现在关于您的 google 地图缩放问题

var mapView:GMSMapView?

现在在你的 viewDidLoad

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    GMSServices.provideAPIKey("YOUR_API_KEY")

    //Taking HardCoded lat longs for the time being. These lat longs are of New Delhi, India
    let camera = GMSCameraPosition.cameraWithLatitude(28.6139, longitude: 77.2090, zoom: 10)
    mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
    mapView!.myLocationEnabled = true
    self.view = mapView

    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2DMake(28.6139, 77.2090)
    marker.title = "Delhi"
    marker.snippet = "India"
    marker.map = mapView

    //As view takes some time to load so I am calling my zoom function after a delay of 1 second. You can use the zoom function code in viewDidAppear too
    //Also this syntax is the latest Swift 2.2 syntax. If you are using the old Swift version, make the changes accordingly for performSelector method
    self.performSelector(#selector(zoom), withObject: nil, afterDelay: 1.0)

}

这里是缩放方法

func zoom() {

    CATransaction.begin()
    CATransaction.setValue(1, forKey: kCATransactionAnimationDuration)

    // It will animate your camera to the specified lat and long
    let camera = GMSCameraPosition.cameraWithLatitude(28.6139, longitude: 77.2090, zoom: 15)
    mapView!.animateToCameraPosition(camera)

    CATransaction.commit()
}