2017-03-13 14 views
1

私は、モデルとしてray wenderlich iOS mapkitチュートリアルを使用して駐車用のアプリケーションを開発しようとしています。 JSONデータセットを解析する際、チュートリアルのデータセットには緯度と経度が別々にあります。しかし、私のデータセットでは、彼らは一緒にいるので、適切に取得できませんでした。どのように位置座標を取得するには?私は長い間、別々に緯度とを持っていない、ので、これは動作しませんJSONデータセットから位置座標を取得できません

let latitude = (json[18].string! as NSString).doubleValue 
let longitude = (json[19].string! as NSString).doubleValue 
let coordinate = CLLocationCoordinate2D(latitude: latitude, longitude: longitude) 

これは、与えられたコードです。 私のJSONデータセットは、このようにそれを持っています

"format" : { } 
    }, { 
    "id" : 203383710, 
    "name" : "Latitude, Longitude", 
    "dataTypeName" : "text", 
    "fieldName" : "latitude_longitude", 
    "position" : 4, 
    "renderTypeName" : "text", 
    "tableColumnId" : 28269463, 
    "width" : 328, 
    "cachedContents" : { 
     "non_null" : 83, 
     "largest" : "21.316161, -157.862061", 
     "null" : 123, 
     "top" : [ { 
     "item" : "21.306760, -157.861027", 
     "count" : 20 
     } ], 
     "smallest" : "21.275168, -157.824498" 
    }, 


[ [ 1, "D8CA6E89-DA04-424A-8DE3-9620EFE0A2EF", 1, 1431455105, "906163", 
1431455105, "906163", "{\n}", "000 Aloha Tower Drive", null, null, null, 
null, null, null, null, null, null, null, null, null, null, null, null, 
null, null, null, [ " 
{\"address\":\"\",\"city\":\"\",\"state\":\"\",\"zip\":\"\"}", null, null, 
null, true ] ] 

ので、これを取得する方法?

答えて

1

「abc、def」に等しい文字列があり、カンマの前の部分とカンマの後の部分に分けたい場合は、string.componentsSeparatedByString(", ")を使用できます。

これは配列を返します。配列の最初の要素(上記の例では)は "abc"になり、2番目の要素は "def"になります。 JSONの緯度と経度はカンマとスペースで区切られているように見えるため、コールの引数はカンマではなくカンマの後にスペースが続く「、」です。

+0

Thx。しかし、CLLocationCoordinate2Dでそれらを使用するためにそれらを2倍に変換しようとしたとき、私はできませんでした。何が間違いでしょうか? 'let str =(json [10] .string!)をNSStringとして返します。 let numbers = str.components(separatedBy:CharacterSet(charactersIn: "、")) let latitude =(numbers.first) let longitude =(numbers。最後に) let座標= CLLocationCoordinate2D(緯度:緯度、経度:経度) ' – naveen

+0

緯度と経度を設定するためのコードの代わりに、 'let latitude = Double(numbers.first)'と 'let longitude = Double( numbers.last) '次に、緯度も経度もnilでないことを確認し、そうでない場合は、これを行います: 'let coordinate = CLLocationCoordinate2D(latitude!latitude!、longitude:longitude!)' – ClayJ

+0

Thx。今私はそれを得た。私のデータセットに問題があった。それはnullだったので値を取得できませんでした。さて、その作業は大丈夫です。再びThx。 – naveen

関連する問題