代码之家  ›  专栏  ›  技术社区  ›  PvDev

如何在iOS Swift中追加二维数组?

  •  0
  • PvDev  · 技术社区  · 6 年前

    在这里,我使用geojson文件来获得一个用于绘制线的2D数组。我无法追加二维空间,当追加它时会将其转换为一维数组。

    这是输出,我得到了:

    coordArray==[[80.2226534485817, 12.871137160770251], [80.22263333201408, 
    12.871145658917484], [80.22264339029789, 12.871184881131773], [80.2225998044014, 
    12.871194686684378], [80.22260718047619, 12.87121625889878], [80.22256962954998,     12.87123848481471], [80.22255957126617, 
    12.871204819088353], [80.22259946912527, 12.871195013536129], 
    [80.22264305502176, 12.871184881131773], [80.22263266146183, 
    12.871145658917484], [80.22265445441008, 12.871135526511145]]
    

    这是一个结构,我用过:

    struct Geodata: Codable {
    let type: String
    let features: [Feature]
    }
    
    struct Feature: Codable {
    let type: String
    let properties: Properties
    let geometry: Geometry
    }
    
    struct Geometry: Codable {
    let type: String
    let coordinates: [[Double]]
    }
    
    struct Properties: Codable {
    let name: String?
    }
    

    这是我为tableview声明的变量 . Here I have declared two called and 协调安排 which I need to use in 表视图`。

     var nameArray = [String]()
    
    var coordinatesArray = [[Double]]()
    

         func loadGeoJson() {
    
    
        guard let jsonUrl = Bundle.main.url(forResource: "map1", withExtension: "geojson") else { return }
    
        guard let jsonData = try? Data(contentsOf: jsonUrl) else { return }
    
        self.drawPolyline(geoJson: jsonData)
    
        URLSession.shared.dataTask(with: jsonUrl) { (data, response, error) in
            if error != nil {
                print(error!.localizedDescription)
            }
    
            guard let data = data else { return }
    
    
            do {
                //Decode retrived data with JSONDecoder and assing type of Article object
                let baseData = try JSONDecoder().decode(Geodata.self, from: data)
    
    
                for featu in baseData.features {
                    self.nameArray.append(featu.properties.name!)
                    print("nameArray==\(self.nameArray)")
    
    
                }
    
                for coor in baseData.features {
    
    
    
                    self.coordinatesArray.append(contentsOf: coor.geometry.coordinates)
    
                    print("new coor::\(coor.geometry.coordinates)")
    
                        print("coordArray==\(self.coordinatesArray)")
                }
    
    
            } catch let jsonError {
                print(jsonError)
        }
    
            DispatchQueue.main.async {
                self.tableView.reloadData()
       }
    
    }.resume()
    
    
    }
    

    这是我的geojson文件:

    {
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "properties": {
            "name": "Dot2Globe - CZSM"
          },
          "geometry": {
            "type": "LineString",
            "coordinates": [
              [
                80.2226534485817,
                12.871137160770251
              ],
              [
                80.22263333201408,
                12.871145658917484
              ],
              [
                80.22264339029789,
                12.871184881131773
              ],
              [
                80.2225998044014,
                12.871194686684378
              ],
              [
                80.22260718047619,
                12.87121625889878
              ]
            ]
          }
        },
        {
          "type": "Feature",
          "properties": {
            "name": "Entrance - CZSM"
          },
          "geometry": {
            "type": "LineString",
            "coordinates": [
              [
                80.22256962954998,
                12.87123848481471
              ],
              [
                80.22255957126617,
                12.871204819088353
              ],
              [
                80.22259946912527,
                12.871195013536129
              ],
              [
                80.22264305502176,
                12.871184881131773
              ],
              [
                80.22263266146183,
                12.871145658917484
              ],
              [
                80.22265445441008,
                12.871135526511145
              ]
            ]
          }
        }
      ]
    }
    0 回复  |  直到 6 年前