我正在使用新的Google Maps SDK for iOS
我可以从GMSMapView.center获取真正的坐标吗? 现在它返回一个CGPoint值,但它不是真正的坐标。
感谢和问候。
答案 0 :(得分:41)
使用地图视图的projection
方法- (CLLocationCoordinate2D)coordinateForPoint:(CGPoint)point
将地图中的点转换为地质坐标
CGPoint point = mapView.center;
CLLocationCoordinate2D coor = [mapView.projection coordinateForPoint:point];
答案 1 :(得分:39)
我建议使用[yourMapView.camera target]
代替Jing的解决方案。
Jing的解决方案在iOS 6上运行良好,但可能在iOS 7 / 7.1上有问题,
投影可能报告错误的坐标(有点向下移动)!
我检查了地图边界并且填充是正确的,[projection pointForCoordinate: coordinate]
和[projection coordinateForPoint:point]
的结果都可以相互对比,没有想法问题在哪里......
答案 2 :(得分:8)
您在寻找mapView.camera.target
吗?这是CLLocationCoordinate2D
。
答案 3 :(得分:7)
以下是Swift 4
let coordinate = mapView.projection.coordinate(for: mapView.center)
答案 4 :(得分:0)
雨燕4
let point = mapView.center
let coordinate = mapView.convert(point, toCoordinateFrom: mapView)
答案 5 :(得分:0)
如果允许用户与地图交互,也许一种更好的方法是使用地图的did-become-idle委托方法。在这里,您可以在每次更换相机后获取中心坐标。
func mapView(_ mapView: GMSMapView, idleAt position: GMSCameraPosition) {
print(position.target)
}