2016-08-03 8 views
0

私は現在の座標と高度を表示できるようにユーザーの場所を常に更新する必要があるアプリを持っています。私はdidUpdateLocations機能を使って、これをやっている:Google Maps iOS SDK各場所のアップデート後にカメラのズームを防止する

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
    if let location = locations.last { 
     mapView.camera = GMSCameraPosition(target: locationManager.location!.coordinate, zoom: 15, bearing: 0, viewingAngle: 0) 
     let locValue : CLLocationCoordinate2D = manager.location!.coordinate 
     let altitude : CLLocationDistance = Double(round(1000*manager.location!.altitude)/1000) 
     let long = Double(round(10000*locValue.longitude)/10000) 
     let lat = Double(round(10000*locValue.latitude)/10000) 
     let alt = String(altitude) + " m" 
     latitudeLabel.text = String(lat) 
     longitudeLabel.text = String(long) 
     altitudeLabel.text = alt 
     showLearningObjectsWithinRange(location) 
    } 
} 

私は少しでもカメラが再び戻ってズームするデバイスを移動する場合は、マップ上の特定の場所にズームインしようとすると問題があります。明らかにこれは、私のdidUpdateLocations関数の最初の行がカメラの位置を設定しているためですが、その行を削除すると、マップはその位置にまったく集中しません。

GMSCameraPositionコードをviewDidLoad、viewWillAppear、および他のいくつかの場所に移動しようとしましたが、ユーザーが時間内に見つからないためにクラッシュする原因となりました。

誰でもこの作業を行う方法に関する提案はありますか?ありがとう。位置更新を実装に関して

+0

ズーム:15、ズームが変化しないようmap.camera.zoomのものを使用するか、ドキュメントをチェックイン場所を更新するとき – Shubhank

答えて

0

は、GitHubのに投稿された問題があった - による位置更新の最適化とスレッドを経由しImplement Responsive User Location Tracking Mode、与えられた問題を回避するには、マップ上のユーザーの場所を表示することが

nMapView.setMyLocationEnabled(true); 
を呼び出すことです

の代わり:

nMapView.setMyLocationTrackingMode(MyLocationTrackingMode.TRACKING_FOLLOW); 

はその後、カメラのズームに関して、Camera and View - Zoomで説明したように、あなたはズームレベルを制限するための最小または最大ズームを設定してみてくださいすることができます。前述のとおり、

ズームの最小/最大を設定することで、マップのズーム範囲を制限することができます。

また、この投稿の解決策をお試しください(Google Maps iOS SDK, Getting Current Location of user)。それが役に立てば幸い。

+0

これは無関係です。質問はGoogleマップに関するものです。 – user3687

0

使用この代わりに、その特定の行の(mapview.camera = ...)

mapView.animate(toLocation: CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)) 
+0

これは動作しません – user3687

関連する問題