You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取谷歌地图上标记点的X、Y坐标信息?

获取谷歌地图标记点的屏幕X/Y坐标解决方案

嘿,我懂你在尝试获取Google Maps标记点对应的屏幕X、Y位置时遇到的困扰了,其实这个问题有个非常直接的解决办法,咱们一步步来:

核心原理

Google Maps iOS SDK里的GMSMapView提供了projection属性,它的point(for:)方法可以帮我们把地理坐标(经纬度)直接转换成屏幕坐标(CGPoint,包含x和y值),这正是你需要的功能。

结合你的代码实现

你已经创建了标记点和地图视图,只需要添加几行代码就能拿到坐标:

// 假设你已经有了marker和mapView的实例
let markerCoordinate = marker.position
// 把标记点的地理坐标转换成屏幕坐标
let markerScreenPoint = mapView.projection.point(for: markerCoordinate)

// 打印结果看看
print("标记点的屏幕X坐标:\(markerScreenPoint.x),Y坐标:\(markerScreenPoint.y)")

如果是要获取你代码里提到的伦敦坐标对应的屏幕位置,同样适用:

let londonCoordinate = CLLocationCoordinate2D(latitude: 51.5, longitude: -0.127)
let londonScreenPoint = mapView.projection.point(for: londonCoordinate)

注意事项

  • 确保mapView已经完成初始化并且添加到视图层级中,不然projection可能无法正常工作。
  • 如果地图发生缩放、平移等操作,屏幕坐标会跟着变化。如果需要实时获取更新后的坐标,可以在地图的代理方法里处理:
func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) {
    // 重新获取标记点的屏幕坐标
    let updatedScreenPoint = mapView.projection.point(for: marker.position)
    print("更新后的屏幕坐标:\(updatedScreenPoint)")
}

这个方法是SDK官方提供的,稳定性和准确性都有保障,放心用就好~

内容的提问来源于stack exchange,提问作者vishnu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:34:18