2012-12-19 11 views
5

d3.js私が正常にGeoJSONファイルをロードしているにGeoJSONとの境界

d3.geo.path() 

に問題をフィーチャーコレクションをロード私は毎回ズームインしなければならない。今、私はズームレベルの権限を設定する方法についての方法の多くがある知っているが、私は次のようにGeoJSON機能を考えると

d3.geo.bounds() 

使用することを期待していた。

json.features[0]: 

Object 
geometry: Object 
coordinates: Array[2] 
0: -71.248913 
1: 44.078426 
length: 2 
__proto__: Array[0] 
type: "Point" 
__proto__: Object 
id: 2 
type: "Feature" 
__proto__: Object 

json.features[1]: 

Object 
geometry: Object 
coordinates: Array[2] 
0: -71.249021 
1: 44.078387 
length: 2 
__proto__: Array[0] 
type: "Point" 
__proto__: Object 
id: 3 
type: "Feature" 
__proto__: Object 

を実行した場合

d3.geo.bounds(json.features) 

私は限界のために無限大を得る:

d3.geo.bounds(json.features) 
[ 
Array[2] 
0: Infinity 
1: Infinity 
length: 2 
__proto__: Array[0] 
, 
Array[2] 
0: -Infinity 
1: -Infinity 
length: 2 
__proto__: Array[0] 
] 

私ははっきりと私は上記よりもはるかにlargetデータセットを持って、何が間違っているか不明だけど、私はただの出力を理解しようとしています。この出力は、私には意味をなさないものであり、geoJSONデータのd3処理について簡単なものがありません。範囲を稼働させる助けがあれば助けになります。

ありがとうございました。

答えて

9

d3.geo.boundsは、単一の機能または引数としてれるFeatureCollection、ない機能の配列をとります。 the documentationを参照してください。たとえば、電話する必要があります。

d3.geo.bounds(json.features[0]) 

あなたはすべての機能が含まれているバウンディングボックスが必要な場合は、順番に各1についてバウンディングボックスを取得し、それらの和集合を計算する必要があります。

+9

はい。 'json'がFeatureCollectionであれば、単に' d3.geo.bounds(json) 'です。 – mbostock

+0

多くの感謝! d3の把握を開始する。 – Justin

関連する問題