【问题标题】:GMSMapView Draw Custom Polyline in SwiftGMSMapView 在 Swift 中绘制自定义折线
【发布时间】:2018-11-15 17:50:57
【问题描述】:

我用 GMSMapView 做了一个地图视图,我想根据手指的触摸画一条折线。但是这个功能让我卡住了,因为我找不到合适的参考。

在我的例子中,例如我想要的结果域应用程序。

感谢您的帮助。

【问题讨论】:

  • 使用 mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) 委托函数来确定用户点击的位置,然后确定点击位置是否在/靠近其中一条路线路径跨度>
  • 嗨@ketakiDamale,感谢您的回复。但如果只使用委托,手指移动时无法到达

标签: objective-c swift google-maps polyline gmsmapview


【解决方案1】:

这是一个相当大而复杂的问题,因此我将概述实施该问题的步骤。如果您需要特定步骤的帮助,我建议您发布一个单独的特定问题。

我们开始吧:

  1. 当点击“绘图模式”按钮时,在地图上方添加一个视图

    • 确保此视图接受所有触摸事件,以便在用户绘制时地图不会滚动
    • 将此视图子类化并覆盖touchesBegantouchesMoved 以实际进行绘图。您可以按照教程here 进行操作。

    • 在视图坐标系中保留多边形所有顶点的数组。

  2. touchesEnded(当用户停止绘图时),将上面的点转换为地图坐标。
    • This 可能会有所帮助。
  3. 从位置坐标绘制一个多边形。
    • This 会有所帮助
  4. 删除您在第 1 步中添加的视图并关闭绘图模式。

如果您需要对此过程进行说明,请随时询问。

【讨论】:

  • 嗨@Dopapp,感谢您的回复。你是个天才,在我一步一步地尝试之后,我设法应用了它。摆脱它真是太好了。再次感谢您的帮助
【解决方案2】:

您应该使用 Quartz2D 绘制线条 因为这个问题有点大,我只是给你一个很好的参考。

https://www.raywenderlich.com/87899/make-simple-drawing-app-uikit-swift

在这里您应该能够弄清楚如何在屏幕上绘制。

【讨论】:

  • 嗨@cheesey,感谢您的回复。使用 Quartz2D 无法应用于 GMSMapView,因为我需要的只是地图中的折线。由于折线形式,我必须确定其中是否包含哪个标记。
  • @Fadielse 我知道我以前从未使用过该控制器,所以我不确定问题出在哪里,但我很高兴你找到了解决方案。
猜你喜欢
  • 2017-11-01
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
  • 2016-04-12
  • 1970-01-01
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多