我在iOS应用程序中使用Google地图。它将绘制两个坐标之间的线,并添加开始和结束位置为"标记"在地图上。
我使用下面的代码添加开始和结束标记
//myLatLngArrayList is array of coordinates with latitude and longitude positions
markerA.position = (curDrill.myLatLngArrayList.first)! as CLLocationCoordinate2D
markerA.map = mapView
markerA.icon = UIImage(named: markerImages.0)
markerB.position = (curDrill.myLatLngArrayList.last)! as CLLocationCoordinate2D
markerB.map = mapView
markerB.icon = UIImage(named: markerImages.1)
我使用以下代码绘制线条:
let path = GMSMutablePath()
for coord in curDrill.myLatLngArrayList {
path.add(coord)
}
let drillPath = GMSPolyline.init(path: path)
drillPath.strokeWidth = 2.0
drillPath.strokeColor = UIColor(Utility.getDrillColor(type: curDrill.type))
drillPath.map = mapView
问题是标记位置与行起点和终点不匹配。标记A未触及线的起点,标记B未触及线的末端。
我无法确定代码中缺少的内容。
答案 0 :(得分:0)
尝试将从Google API收到的所有步骤坐标从第一点添加到最后一点。
答案 1 :(得分:0)
尝试与标记的groundAnchor一起玩。
地面锚点指定图标图像中锚定到地球表面标记位置的点。在连续空间[0.0,1.0] x [0.0,1.0]中指定此点,其中(0,0)是图像的左上角,而(1,1)是右下角。
这对我有用:
marker.groundAnchor = CGPoint(x: 0.5, y: 0.5)