加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在swift中为ios的谷歌地图sdk添加地图视图的标记

发布时间:2020-12-14 04:29:30 所属栏目:百科 来源:网络整理
导读:试图在谷歌地图上添加一个标记,但是当addMarker()函数调用时应用程序崩溃了,异常详细信息如下, 由于未捕获的异常’GMSThreadException’而终止应用,原因是:’所有对iOS版Google地图SDK的调用必须来自UI线程’ 仅供参考vwGogleMap是全球性的,我正在尝试绘制
试图在谷歌地图上添加一个标记,但是当addMarker()函数调用时应用程序崩溃了,异常详细信息如下,

由于未捕获的异常’GMSThreadException’而终止应用,原因是:’所有对iOS版Google地图SDK的调用必须来自UI线程’

仅供参考vwGogleMap是全球性的,我正在尝试绘制标记.

func addMarker() -> Void
{
    var vwGogleMap : GMSMapView?
    var position = CLLocationCoordinate2DMake(17.411647,78.435637)
    var marker = GMSMarker(position: position)
    marker.title = "Hello World"
    marker.map = vwGogleMap
}

任何帮助,将不胜感激,

TIA.

解决方法

在闭包中执行UI更新时(在我的情况下 – 绘制标记),请记住只获取主线程并在主线程上执行UI操作.

错误我所做的是,我正在尝试在Web服务完成块中绘制标记.

dispatch_async(dispatch_get_main_queue(),{
    var position = CLLocationCoordinate2DMake(17.411647,78.435637)
    var marker = GMSMarker(position: position)
    marker.title = "Hello World"
    marker.map = vwGogleMap
})

// For swift 3.0 support.
// 1. Get Main thread
DispatchQueue.main.async
{
    // 2. Perform UI Operations.
    var position = CLLocationCoordinate2DMake(17.411647,78.435637)
    var marker = GMSMarker(position: position)
    marker.title = "Hello World"
    marker.map = vwGoogleMap
}

希望这对某人有帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读