1
MKMapViewで以下のGeoJSONデータをオーバーレイとして描画しようとしています。Swift 3を使用してApple MapsでGeoJSONをオーバーレイとして描画する方法
GeoJSONファイルは以下のとおりです。
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"Name": "line1"
},
"geometry": {
"type": "LineString",
"coordinates": [
[
76.35498046875,
25.145284610685064
],
[
81.36474609375,
25.06569718553588
],
[
83.91357421875,
23.301901124188877
],
[
82.001953125,
22.004174972902003
],
[
78.33251953125,
21.248422235627014
],
[
76.31103515625,
21.268899719967695
]
]
}
},
{
"type": "Feature",
"properties": {
"Name": "point8"
},
"geometry": {
"type": "Point",
"coordinates": [
74.50927734375,
20.076570104545173
]
}
}
]
}
しかし、私はそれを解析することはできませんよ。助けてください。これを行うために利用できるサードパーティのSDKはありますか?
私は
func loadJSON() {
var features = [Feature]()
guard let url = Bundle.main.url(forResource: "Geo", withExtension: "json") else {
return
}
do {
let data = try Data(contentsOf: url)
guard let rootObject = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String : Any] else {
return
}
guard let featureObjects = rootObject["features"] as? [[String: AnyObject]] else {
return
}
for feature in featureObjects {
if let type = feature["type"] as? String,
let propertyObject = feature["properties"] as? [String : String],
let geometryObject = feature["geometry"] as? [String : AnyObject] {
var properties: PropertyVal?
for property in propertyObject.values {
properties = PropertyVal(name: property)
}
var geometries: Geometry?
var coordData: [Coordinates]?
var coord: Coordinates
var typeData: String = ""
for obj in geometryObject.values {
print(obj)
if let type = obj as? String {
typeData = type
} else {
//return
}
if let coordObj = obj as? [Double] {
coord = Coordinates(latitude: coordObj[0], longitude: coordObj[1])
coordData?.append(coord)
} else {
//return
}
geometries = Geometry(type: typeData, coordinates: coordData!)
}
let feature = Feature(type: type, properties: properties!, geometry: geometries!)
features.append(feature)
print("Feature is \(features)")
}
}
} catch {
}
}
}
以下のようスウィフト3のコードを書かれている。しかし、これは動作しません。
はい、動作しています。ありがとうたくさん:D – AniAdhikary
あなたの答えを受け入れました。再度、感謝します!! – AniAdhikary
@AniAdhikaryようこそメイト:) –