我如何在地图上快速绘制标记

时间:2016-06-06 08:52:28

标签: arrays json swift

我正在使用JSON的数据,并将来自JSON的所有geox存储在Geoy中,并将geoy存储在geoy中。 而通过for循环绘制标记会抛出错误“无法将NSArray类型的值转换为预期的参数类型CLLocationDegrees(又名Double)”

let data = JSON as! NSDictionary
let result = Data["result"] as! NSArray                
let geox = result.valueForKey("geo_x") as! NSArray
let geoy = result.valueForKey("geo_y") as! NSArray
let count = geox.count
for index in 0...count {
    let position = CLLocationCoordinate2DMake(geox,geoy)
    let marker = GMSMarker(position: position)
    marker.map = mapView
}

有人能指出我解决这个问题的方向吗?

1 个答案:

答案 0 :(得分:0)

如果我理解,你会收到两个独立的数组:一个用于经度坐标,另一个用于纬度。

所以你可以这样做: 首先替换它:

let geox = result.valueForKey("geo_x") as! NSArray
let geoy = result.valueForKey("geo_y") as! NSArray

由此:

let geox = result.valueForKey("geo_x") as! [CLLocationDegrees]
let geoy = result.valueForKey("geo_y") as! [CLLocationDegrees]

然后:

for index in 0...count {
    let position = CLLocationCoordinate2DMake(geox[index],geox[index])
    let marker = GMSMarker(position: position)
    marker.map = mapView
}