7

フィーチャーコレクションをロードしたgeoJSONファイルを正常にロードしました

d3.geo.path() 

私の現在の実装の問題は、パスがポイントになるようにスケーリングから開始することであり、毎回ズームインする必要があります。ズームレベルを正しく設定する方法はたくさんあると思いますが、

d3.geo.bounds()

次のgeoJSON機能があるとします。

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]
]

何が悪いのかわかりません。明らかに、上記よりもはるかに大きなデータセットがありますが、出力を理解しようとしているだけです。この出力は私には意味がなく、geoJSONデータのd3処理に関する単純な何かが明らかに欠けています。限界を機能させるための助けがあれば役に立ちます。

ありがとう。

4

1 に答える 1

14

d3.geo.bounds機能の配列ではなく、単一のFeatureまたはFeatureCollectionを引数として取ります。ドキュメントを参照してください。あなたは例えば電話する必要があります

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

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

于 2012-12-19T05:22:47.930 に答える