在GSMapView

时间:2017-06-16 10:46:25

标签: ios swift google-maps google-maps-markers

我在iOS应用程序中使用Google地图。它将绘制两个坐标之间的线,并添加开始和结束位置为"标记"在地图上。

Have a look at the image

我使用下面的代码添加开始和结束标记

    //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未触及线的末端。

我无法确定代码中缺少的内容。

2 个答案:

答案 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)