我有geojson文件要在Mapview中显示。它包含数千个类型为“LineString”的坐标。所以,对于解析,我使用了“GEOSwift”库。
但是,在解析时间的同时,它不能从LineString中获取数据,也不能从下面的条件中获取数据。

                    if let item = item as? LineString {

代码是
DispatchQueue.global(qos: .background).async {
            if let geoJSONURL = Bundle.main.url(forResource: "LineString", withExtension: "geojson") {
                do {
                    var overlays = [MKPolyline]()
                    let features = try Features.fromGeoJSON(geoJSONURL)
                    for item in features! {
                        if let item = item as? LineString {
                            let polyLine = item.mapShape() as! MKPolyline
                            overlays.append(polyLine)
                        }
                    }
                    DispatchQueue.main.async {
                        // add overlays to map
                        self.mapView.addOverlays(overlays)
                    }

                } catch {

                }
            }
        }

甚至试过像下面这样,但是,显示编译时错误。
let geometryDict = item["geometry"]
let lineStringType = geometryDict["type"]

geojson的样本数据如下
{"type":"FeatureCollection”,”features":[{"type":"Feature","id":1,"geometry":{"type":"LineString","coordinates":[[-61.4127132774969,42.9804121510986],[-61.412698736004,62.9807528172026],[-61.4126676674304,42.9808383428383]]},{"type":"Feature","id":2,"geometry":{"type":"LineString","coordinates":[[-61.4124601404427,32.9810257092771],[-61.4124646891238,32.9810320381762],[-61.412690615116,32.9813462742651]]}

层次结构类似于PFA。
有人能告诉我,我做错了什么吗?
swift - 无法从GEOSwift库解析几何LineString以在MapView中显示折线-LMLPHP
我完全遵循了下面的链接,但是,他们没有给出LineString的示例。
https://github.com/GEOSwift/GEOSwift

最佳答案

通过变量检查器,我发现您访问元素的方式是错误的。使用下一个表达式访问LineString序列中的第一个features
if let item = item.geometries[0] as? LineString {

关于swift - 无法从GEOSwift库解析几何LineString以在MapView中显示折线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49296962/

10-08 21:10