我在Mapview中显示geojson
个文件。它包含“LineString
”类型下的数千个coordaantes。因此,为了解析我使用了“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。
任何人都可以建议我,我做错了吗?
我完全遵循了以下链接,但是,他们没有给出LineString的示例。
答案 0 :(得分:1)
通过变量检查器,我发现你正在以错误的方式访问元素。使用下一个表达式访问LineString
序列中的第一个features
:
if let item = item.geometries[0] as? LineString {