如何使用Swift创建MKPolyline和MKPolygon?

如何使用Swift创建MKPolyline和MKPolygon?,swift,mapkit,mkannotation,mkpolyline,mkpolygon,Swift,Mapkit,Mkannotation,Mkpolyline,Mkpolygon,我需要在地图上添加多段线或多边形的创建菜单。 我知道如何使用注释列表渲染MKPolyline和MKPolygon,但不知道如何使用手势创建 谢谢您的帮助。部分代码取自 let location=[CLLocation(纬度:37.582691,经度:127.011186),CLLocation(纬度:37.586112,经度:127.011047),CLLocation(纬度:37.588212,经度:127.010438)] var坐标=locations.map({(location:CLL

我需要在地图上添加多段线或多边形的创建菜单。 我知道如何使用注释列表渲染MKPolyline和MKPolygon,但不知道如何使用手势创建


谢谢您的帮助。

部分代码取自

let location=[CLLocation(纬度:37.582691,经度:127.011186),CLLocation(纬度:37.586112,经度:127.011047),CLLocation(纬度:37.588212,经度:127.010438)]
var坐标=locations.map({(location:CLLocation)->返回位置中的CLLocationCoordinate2D.coordinate})
设polyline=MKPolyline(坐标:&坐标,计数:locations.count)
设polygon=MKPolygon(坐标:&坐标,计数:位置。计数)
让coordsPointer=unsafemeutablepointer.alloc(polyline.pointCount)
polyline.getCoordinates(坐标指针,范围:NSMakeRange(0,polyline.pointCount))
变量coords:[字典]=[]

对于0..中的i,部分代码取自

let location=[CLLocation(纬度:37.582691,经度:127.011186),CLLocation(纬度:37.586112,经度:127.011047),CLLocation(纬度:37.588212,经度:127.010438)]
var坐标=locations.map({(location:CLLocation)->返回位置中的CLLocationCoordinate2D.coordinate})
设polyline=MKPolyline(坐标:&坐标,计数:locations.count)
设polygon=MKPolygon(坐标:&坐标,计数:位置。计数)
让coordsPointer=unsafemeutablepointer.alloc(polyline.pointCount)
polyline.getCoordinates(坐标指针,范围:NSMakeRange(0,polyline.pointCount))
变量coords:[字典]=[]

对于0中的i.。我知道如何渲染,但我不知道如何用手指获取坐标。@Z.S.我更新了如何从多段线获取坐标的代码。我知道如何渲染,但我不知道如何用手指获取坐标。@Z.S.我更新了如何从多段线获取坐标的代码。
    let locations = [CLLocation(latitude: 37.582691, longitude: 127.011186), CLLocation(latitude: 37.586112,longitude: 127.011047), CLLocation(latitude: 37.588212, longitude: 127.010438)]
    var coordinates = locations.map({(location: CLLocation) -> CLLocationCoordinate2D in return location.coordinate})
    let polyline = MKPolyline(coordinates: &coordinates, count: locations.count)
    let polygon = MKPolygon(coordinates: &coordinates, count: locations.count)


let coordsPointer = UnsafeMutablePointer<CLLocationCoordinate2D>.alloc(polyline.pointCount)
polyline.getCoordinates(coordsPointer, range: NSMakeRange(0, polyline.pointCount))
var coords: [Dictionary<String, AnyObject>] = []
for i in 0..<polyline.pointCount {
    let latitude = NSNumber(double: coordsPointer[i].latitude)
    let longitude = NSNumber(double: coordsPointer[i].longitude)
    let coord = ["latitude" : latitude, "longitude" : longitude]
    coords.append(coord)
}
print(coords)