在 GMSMapView 上显示折线的开始和结束标记

Posted

技术标签:

【中文标题】在 GMSMapView 上显示折线的开始和结束标记【英文标题】:Show starting and ending marker of Polyline on GMSMapView 【发布时间】:2020-12-30 20:07:18 【问题描述】:

ios 中的 GSMapView 具有不同的功能来覆盖谷歌地图上的折线。有没有办法在折线的起点和终点显示标记?折线的点只是字符串。

// MARK: - Polyline
struct Polyline: Codable 
    let points: String?

是否可以提取第一个和最后一个点并将它们作为标记添加到谷歌地图上?

【问题讨论】:

【参考方案1】:

您如何定义折线的路径?

您可以将折线的路径定义为GMSMutablePath(),您可以在其中添加坐标值来定义折线的起点和终点。

例如,您可以定义一条从梅尔伯恩到珀斯的折线:

let path = GMSMutablePath()
path.addLatitude(-37.81319, longitude: 144.96298)
path.addLatitude(-31.95285, longitude: 115.85734)
let polyline = GMSPolyline(path: path)
polyline.strokeWidth = 5.0
polyline.geodesic = true
polyline.map = mapView

然后,您可以使用这些坐标在折线的起点和终点添加一个标记:

let melbourneMarker = GMSMarker();
melbourneMarker.position = CLLocationCoordinate2D(latitude: -37.81319, longitude: 144.96298)
melbourneMarker.map = mapView;

let perthMarker = GMSMarker();
perthMarker.position = CLLocationCoordinate2D(latitude: -31.95285, longitude: 115.85734)
perthMarker.map = mapView;

供您参考,您可以查看此polyline documentation。因此,它看起来像这样:

【讨论】:

假设,我只有折线,没有别的。使用折线,我们可以在谷歌地图上绘制。但是从折线本身,我想提取起点和终点。 我可以知道你在哪里得到折线吗?该特定折线的路径是如何定义的? 其他团队创建了一个框架,为我正在处理的模块提供折线细节。

以上是关于在 GMSMapView 上显示折线的开始和结束标记的主要内容,如果未能解决你的问题,请参考以下文章

在iOS中的GMSMapView上绘制两地之间的路线

android谷歌地图json中的标记

GMSMapView 更新相机位置,以便在导航期间始终显示朝向顶部的方向

自定义 UIView 上的 Google 地图 GMSMapView

如果从 Storyboard 添加约束,则 GMSMapView 不显示任何内容

如何使用 JSON 纬度数组和 JSON 经度数组在 Google 地图上显示折线?