2016-10-08 3 views
0

PHPでデータベース要求からGeoJsonインスタンスを作成しようとしています。 は私がインスタンスを作成するために、このパッケージを使用しています:私が作成しているれるFeatureCollectionを http://jmikola.github.io/geojson/api/class-GeoJson.Feature.FeatureCollection.htmlリーフレットFeatureCollection:LatLongが定義されていません

を私は

エラーを取得しています「エラー:無効な緯度経度オブジェクト:(未定義、未定義)」 にもかかわらず、私の座標浮動小数点です。 しかし、座標は配列[、]を通って来るのではなく、配列の内部にあるJavascriptオブジェクト{、}として、これは問題でしょうか? 第二に、私はCRSを設定することに問題があると思う。 QGISでGeoJSONを正常に作成することができ、FeatureCollectionの最上部に表示されますが、このパッケージではPHPが最後に表示されます。

マイフィーチャーコレクションは、次のようになります

{ 
"type": "FeatureCollection", 
    "features": [ 
     { 
     "type": "Feature", 
     "geometry": { 
      "type": "MultiPoint", 
      "coordinates": [ 
       {...}, 
       {...} 
      ] 
     }, 
     "properties": [ 
      {...}, 
      {...} 
     ], 
     "id": { 
      "type": "name", 
      "properties": { 
       "name": "urn:ogc:def:crs:OGC:1.3:CRS84" 
       } 
      } 
     } 
    ] 
} 

私は時間のフォーラムを通じてトロールされているので、私は誰かが役立つことを願って!

いいえお返事

答えて

0

はい、座標とプロパティはオブジェクトではなく配列でなければなりません。そのため、あなたはこのように、あなたにGeoJSONを作成しようとする前に、それらを変換することができます

//loop through all your features 
featureCollection.features.forEach(function(feature) { 
    // first the coordinates in the geometry property 
    feature.geometry.coordinates.forEach(function(coord, index) { 
     feature.geometry.coordinates[index] = [coord.lat, coord.lng]; 
    }); 

    // then those in the properties 
    feature.properties.forEach(function(prop, index) { 
     feature.properties[index] = [prop.lat, prop.lng]; 
    }); 
}); 
+0

あなたに優しい先生ありがとうございました! – Dazzle

関連する問題