26

我正在使用适用于 iOS 的新 Google Maps SDK

我能得到真正的坐标形式 GMSMapView.center 吗?现在它返回一个 CGPoint 的值,但它不是真正的坐标。

感谢和问候。

4

6 回答 6

43

使用mapview的projection方法- (CLLocationCoordinate2D)coordinateForPoint:(CGPoint)point将地图中的一个点转换为地理坐标

CGPoint point = mapView.center;
CLLocationCoordinate2D coor = [mapView.projection coordinateForPoint:point];
于 2013-03-03T23:42:54.007 回答
42

我建议使用[yourMapView.camera target]代替Jing的解决方案。

Jing 的解决方案在 iOS 6 上运行良好,但在 iOS 7/7.1 上可能有问题,投影可能会报告错误的坐标(有点向下移动)!我已经检查了地图边界和填充是否正确,两者的结果都[projection pointForCoordinate: coordinate]可以[projection coordinateForPoint:point]相互对比,不知道问题出在哪里......

于 2014-03-31T21:31:26.093 回答
15

这是如何做到这一点 Swift 4

let coordinate = mapView.projection.coordinate(for: mapView.center)
于 2018-05-15T21:24:49.427 回答
11

你在找mapView.camera.target吗?这是一个CLLocationCoordinate2D.

于 2013-02-27T08:01:34.070 回答
0

如果允许用户与地图交互,也许更好的方法是使用地图的 did-become-idle 委托方法。在这里您可以获得每次相机更改后的中心坐标。

func mapView(_ mapView: GMSMapView, idleAt position: GMSCameraPosition) {
    print(position.target)
}
于 2020-10-22T15:48:28.367 回答
0

斯威夫特 4

let point = mapView.center
let coordinate = mapView.convert(point, toCoordinateFrom: mapView)
于 2020-10-08T05:17:37.980 回答