【问题标题】:Programmatically display a GMSMarker's info window以编程方式显示 GMSMarker 的信息窗口
【发布时间】:2018-01-06 09:58:12
【问题描述】:

我知道 SO (Displaying info window when tapped marker in google maps iOS sdk while implementing mapView:didTapMarker: delegate method implemented) 上已经有类似的问题,但答案不适用于我的情况。

在我的 mapView(didTap:) 委托方法中,它必须 return true 因为我以编程方式确定点击标记时的相机位置。如果我return true 就像上面问题中的答案所说的那样,地图会自动以所选标记为中心,这是我不想要的。由于我return true,点击标记不会显示标记的信息窗口,我仍然希望出现这种情况,那么有没有办法让我以编程方式做到这一点?

我不认为我的mapView(didTap:) 委托方法中的代码对于回答这个问题是必要的,但如果有人需要,请告诉我。 (请记住,我的问题是指点击标记时的委托方法,而不是点击信息窗口时的委托方法,mapView(didTapInfoWindowOf:))

提前致谢。

编辑:

查看 Google 地图文档,我发现有一种我在 JavaScript 中寻找的方法,称为 showInfoWindow(),您可以在要显示的信息窗口 (this is the link to the documentation I'm talking about) 上调用标记。那么有人知道这种方法的 Swift 3 替代方案吗?

编辑:

如果我在委托方法中return false,相机会瞬间移动到标记的位置,然后平移到我以编程方式告诉它移动到的位置。这在技术上是可行的,但它很丑而且不流畅,所以我仍然需要一种方法来以编程方式显示标记的信息窗口,而委托方法返回 true。

【问题讨论】:

    标签: swift google-maps


    【解决方案1】:

    在google的问题跟踪器和submitting a post上,我发现mapView.selectedMarker() = marker实际上与mapView(didTap:)委托方法没有任何联系,所以在委托方法中返回true没有影响关于selectedMarker()方法的功能。

    因此,我可以在自定义我想要为 mapView 设置动画的位置之后和返回 true 之前在委托方法中添加 mapView.selectedMarker() = marker,这会导致标记的信息窗口弹出而不会弄乱相机位置.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      • 2023-03-28
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多