2017-06-18 3 views
1

ファイルからboundaryを追加しようとしていますが、GEOSwiftポッドを使用しています。しかし、私がプロジェクトを実行すると、常にが表示されます。「geoJSONデータを読み込めません。そのファイルを見つけることができませんでした。メッセージです。これは何かが間違っていたことを意味します。iOS - bundle.man.urlを読み込もうとすると何も返されません

p.s geoJSONファイルはhereです。そして、私は事前に

func addBoundry() { 
     print("1") 
     if let geoJSONURL = Bundle.main.url(forResource: "multipolygon", withExtension: "geojson") { 
      print("2") 
      do { 
       print("3") 
       let geometries = try Geometry.fromGeoJSON(geoJSONURL) 
       if let geo = geometries?[0] as? MultiPolygon { 
        print("4") 

        if let shapesCollection = geo.mapShape() as? MKShapesCollection { 
         print("5") 

         let shapes = shapesCollection.shapes 

         for shape in shapes { 
          print("6") 
          if let polygon = shape as? MKPolygon { 
           print("7") 
           mapView.add(polygon) 
          } 
         } 
        } 
       } 
      } catch { 
       print("Unable to load geojson data") 
      } 
     } else { 
      print("Unable to load geojson data, could not find such file.") 
     } 
    } 

3.迅速

感謝を使用しています!

+0

"multipolygon.geojson"ファイルはビルドターゲットの一部ですか? –

+0

それはプロジェクトに貼り付けられますが、それはすべてです。 「ビルドターゲットの一部」とはどういう意味ですか? –

+0

ファイルを選択して、「Target Membership」の下にあるIdentity Inspector(Xcodeの右の列、一番上の小さいページアイコン)でビルド対象がチェックされていることを確認します。ターゲットのビルドフェーズにもリストされている必要があります(ナビゲータでプロジェクトを選択し、メインペインの該当するターゲットを選択し、上部にある「ビルドフェーズ」)、「バンドルリソースのコピー」の下に表示します。 –

答えて

0

"multipolygon.geojson"ファイルがビルドターゲットの一部であることを確認してください。

ファイルを選択して、「ターゲットメンバーシップ」の下のアイデンティティインスペクタ(Xcodeの右の列、上の小さなページアイコン)でビルド対象がチェックされていることを確認します。ターゲットのビルドフェーズにもリストされている必要があります(ナビゲータでプロジェクトを選択し、メインペインの該当するターゲットを選択し、上部にある「ビルドフェーズ」)、「バンドルリソースのコピー」の下に表示します。

+0

町にプロパティの境界線を含む別のgeoJSONファイルがあります。 geoJSONファイルの座標は[97973.4655999987,6219081.53249992,0]で、現実世界では56.091648,12.664262,0でなければなりません。 geoJSONファイルの座標を現実の座標に変換できますか?なぜ彼らは同じではありませんか? –

関連する問題