有人已经想出如何在新的Google Maps SDK for iOS中实现可拖动标记了吗?API本身尚未提供此功能,但功能请求已经提交。
如果我能够获得GMSMarker的底层视图,我就可以拦截触摸事件。有人试过这样做吗?
有人已经想出如何在新的Google Maps SDK for iOS中实现可拖动标记了吗?API本身尚未提供此功能,但功能请求已经提交。
如果我能够获得GMSMarker的底层视图,我就可以拦截触摸事件。有人试过这样做吗?
从今天起,您不需要使用外部类,只需使您的标记物可拖动。
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);
}
你好,我刚刚在新的GoogleMaps SDK for iOS中实现了一个拖放标记的功能。我已经将代码发布在github上,以下是链接: https://github.com/rweindl/google-maps-sdk-ios-drag-drop
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.")
}
}
注意:我曾试图让屏幕和标记在选择后不再浮动和上下动画。现在我明白这是一个“特性”,因为当您拖动时,手指会挡住视线,如果不移动屏幕,您将无法清楚地看到。(呃!)
SDK中尚未添加可拖动的标记。请提交功能请求。