我的应用程序中集成了Google Maps API,并且在地图上绘制了一些自定义形状,当用户输入这些形状之一时,我想触发一个事件。我发现有一种方法可以监视用户是否使用CLCircularRegion输入了圆形区域,但是对于自定义形状什么也看不到。就我而言,形状基本上是CLLocationCoordinate2D的数组。

最佳答案

也许你的意思是画折线

我有一个示例代码可能与您想要的结果匹配

func addCustomShapeInMap( drawableLoc:[CLLocationCoordinate2D]) {

        isDrawingModeEnabled = true
        let path = GMSMutablePath()
        for loc in drawableLoc{
            path.add(loc)

        }
        let newpolygon = GMSPolygon(path: path)
        newpolygon.strokeWidth = 3
        newpolygon.strokeColor = UIColor(red: 20.0/255.0, green: 119.0/255.0, blue: 234.0/255.0, alpha: 0.75)
        newpolygon.fillColor = UIColor(red: 156.0/255.0, green: 202.0/255.0, blue: 254.0/255.0, alpha: 0.4)
        newpolygon.map = mapView
        userDrawablePolygons.append(newpolygon)

        if drawableLoc.count > 2 {
            let coordinateBounds = GMSCoordinateBounds(path: newpolygon.path!)
            mapView.animate(with: .fit(coordinateBounds))
        }
    }


希望对您有所帮助。 :)

07-27 16:58