ios - 显示用户在多段线中点击的标记

标签 ios swift google-maps-sdk-ios

我正在我的 Google map 中绘制折线。当用户点击该行时。标记将显示和信息窗口。但不是用户确切点击它的地方。

我如何知道用户在该行中点击的坐标(纬度、经度)?

我认为下面的函数被 `didTap overlay' 方法覆盖了

 func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) {
}

谢谢!

最佳答案

首先我想说你必须创建能够点击的折线:

GMSPolyline *poly = [GMSPolyline polylineWithPath:path];
poly.strokeColor = [UIColor purpleColor];

poly.tappable = TRUE;  // this is important

poly.map = self.googleMapView;
poly.title = routestring;

然后使用:

-(void)mapView:(GMSMapView *)mapView didTapOverlay:(GMSOverlay *)overlay{

NSString *path = overlay.title;
NSArray *pathparts = [path pathComponents];
NSString *lat = [pathparts objectAtIndex:0]; //get lat
NSString *lng = [pathparts objectAtIndex:1]; // get lng
NSString *lnkID = [pathparts objectAtIndex:2];

// Create a marker and plot on Map

GMSMarker *mk = [GMSMarker arkerWithPosition:CLLocationCoordinate2DMake([lat doubleValue],[lng doubleValue])];
mk.title = overlay.title;
mk.snippet = @"ROUTE DATA";
mk.map = self.googleMapView;

//This will popup a marker window
[self.googleMapView setSelectedMarker:mk];
}

如果使用 swift 使用这个方法:

func mapView(mapView: GMSMapView!, didTapOverlay overlay: GMSOverlay!) {

}

关于ios - 显示用户在多段线中点击的标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39788233/

相关文章:

swift - 结构中的私有(private)静态变量

ios - 取消更改 Controller 时,表格 View 单元格内的 Swift Avplayer 仍在播放

ios - Swift 中的解析和 GMaps iOS SDK 不兼容?

swift - 如何使用 swiftUI View 在启动时将 Google map 相机聚焦在用户当前位置

iOS Swift 组合 : cancel a Set<AnyCancellable>

ios - Profiler 中的分配工具未显示应用程序级别类

iphone - 如何在 subview 上方呈现 ModalViewController

ios - 如何获取图片的路径?

google-maps-sdk-ios - 添加按钮以查看由 markerInfoWindow 委托(delegate)方法返回的 View

ios - 未在 iOS 中显示附近的转换设备选择屏幕