【问题标题】:Draggable marker with Google Maps SDK for iOS带有适用于 iOS 的 Google Maps SDK 的可拖动标记
【发布时间】:2013-02-09 08:10:12
【问题描述】:

有人知道如何使用新的 iOS 版 Google Maps SDK 实现可拖动标记吗? API 还没有原生地提供它。功能请求已提交。

如果我能掌握 GMSMarker 的底层视图,我就可以拦截 Touch 事件。有人试过吗?

【问题讨论】:

  • 有什么解决办法吗?谢谢
  • 是的,两个,它们都是正确的。请接受一个(robert weindl 的很酷),这样就可以从列表中越过:D

标签: drag-and-drop google-maps-markers draggable google-maps-sdk-ios


【解决方案1】:

从今天开始,您不需要使用外部类,只需让您的标记“可拖动”

GMSMarker *myMarker = [[GMSMarker alloc] ...];
...
[myMarker setDraggable: YES];
// Use some kind of data to identify each marker, marker does not have 'tag' but 'userData' that is an 'id' type
[myMarker setUserData: markerId];

并实现各自的委托

@interface YourController: UIViewController<GMSMapViewDelegate> ...

设置你的委托

GMSMapView *myMapView = [[GMSMapView alloc] ...];
...
myMapView.delegate = self;

然后你就可以处理每个标记事件,即:

-(void)mapView:(GMSMapView *)mapView didEndDraggingMarker:(GMSMarker *)marker{
    if ([marker.userData isEqualtoString:@"xMark"])
        NSLog(@"marker dragged to location: %f,%f", marker.position.latitude, marker.position.longitude);
}

【讨论】:

  • 当您开始拖动标记时,有什么方法可以禁用 MapView 滚动动画?
【解决方案2】:

您好,我刚刚在新的 iOS 版 GoogleMaps SDK 中实现了标记的拖放功能。我在 github 上的以下链接下发布了代码: https://github.com/rweindl/google-maps-sdk-ios-drag-drop

【讨论】:

  • 它显示了错误的纬度,在放下一个大头针后很久:(,请交叉检查。
  • 它对我来说完美无缺。必须在您的代码中的某个地方...您可以先向我们展示一些
  • 有趣的是我无法下载 zip 文件:\
  • 从 2013 年 6 月的 Google Maps SDK 1.3.1 开始,Google 添加了一个手势识别器,与 Robert 的可拖动方法相混淆。 '
  • @All:我刚刚更新了github.com/rweindl/google-maps-sdk-ios-drag-drop 项目以绕过新的 GMSBlockingGestureRecognizer 并再次启用拖放功能。
【解决方案3】:

Swift 3.0

甜!我所要做的就是将此变量添加到我的标记中。然后仔细选择并按住标记片刻,您可以拖动它。

marker.isDraggable = true  

我还没有实现代表来保存我的标记数据,但它应该是这样的。

extension MapVC : GMSMapViewDelegate {

    func mapView (_ mapView: GMSMapView, didEndDragging didEndDraggingMarker: GMSMarker) {

        print("Drag ended!")
        print("Update Marker data if stored somewhere.")

    }

}

注意:有一段时间我试图取消动画屏幕和标记在选择后浮动和动画 UP。现在我看到这是一个“功能”,因为你的手指挡住了,如果它在拖动过程中不移动屏幕,你就看不清楚。 (呃!)

【讨论】:

    【解决方案4】:

    可拖动标记尚未添加到 SDK。请file a feature request

    【讨论】:

    猜你喜欢
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多