如何在iphone中获取gmsmapview的坐标中心

Posted

技术标签:

【中文标题】如何在iphone中获取gmsmapview的坐标中心【英文标题】:How to get coordinate center of gmsmapview in iphone 【发布时间】:2013-02-12 17:54:57 【问题描述】:

我正在使用新的 ios 版 Google Maps SDK

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

感谢和问候。

【问题讨论】:

【参考方案1】:

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

CGPoint point = mapView.center;
CLLocationCoordinate2D coor = [mapView.projection coordinateForPoint:point];

【讨论】:

【参考方案2】:

我建议使用[yourMapView.camera target]而不是Jing的解决方案。

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

【讨论】:

你能解释一下吗,我想得到相机的中心和在那个中心的纬度或经度。 谢谢!我试图将投影与 mapView.center 一起使用,但正如您突出显示的那样,坐标向下移动了 - 我花了一个小时试图弄清楚为什么我的图钉位置错误。 camera.target 成功了 我不会假设 camera.target 是视图的中心 - 如果您对地图视图应用了任何“填充”,它将被移动。【参考方案3】:

这是Swift 4中的操作方法

let coordinate = mapView.projection.coordinate(for: mapView.center)

【讨论】:

【参考方案4】:

您在寻找mapView.camera.target 吗?这是CLLocationCoordinate2D

【讨论】:

IMO 这是比接受更好的解决方案。两者都给出相同的结果,但这个更短更直接 我同意它更好,但在我的情况下,这个解决方案和上面那个投影 mapView.center 的答案没有给出相同的结果,实际上 mapView.center 给了我错误的位置,向南移动在地图上,就像有人写的那样……不知道为什么。【参考方案5】:

斯威夫特 4

let point = mapView.center
let coordinate = mapView.convert(point, toCoordinateFrom: mapView)

【讨论】:

【参考方案6】:

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

func mapView(_ mapView: GMSMapView, idleAt position: GMSCameraPosition) 
    print(position.target)

【讨论】:

以上是关于如何在iphone中获取gmsmapview的坐标中心的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Firebase 获取单个数据库引用

如何从 iphone sdk 中的城市名称获取位置(坐标)?

如何使用 abbyy mobile sdk for iphone 获取坐标

如何使用 GMSMapView 在 iOS 中找到两个位置之间的最短路径并绘制锯齿形路径?

如何从内存中卸载 GMSMapView?

Iphone,如何在后台保存坐标gps? [复制]