2012-12-19 23 views
5

ho caricato con successo i file caricati GeoJSON la collezione di elementi in und3.js GeoJSON e limiti

d3.geo.path() 

Il problema con il mio attuale implementazione è che inizia la scala in modo tale che il percorso è un punto, e Devo ingrandire ogni volta. Ora so che ci sono un sacco di metodi per sull'impostazione il giusto livello di zoom, ma speravo di usare

d3.geo.bounds() 

Dato il seguente funzione 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 

e

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 

Se eseguo

d3.geo.bounds(json.features) 

Ottengo infinito per i limiti:

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

io sono sicuro ciò che è sbagliato, chiaramente ho un insieme di dati molto larget di sopra, ma sto solo cercando di capire l'output. Questo output non ha senso per me e chiaramente mi manca qualcosa di semplice sulla gestione di d3 di dati geoJSON. Sarebbe utile qualsiasi aiuto per ottenere i limiti per lavorare.

Grazie.

risposta

9

d3.geo.bounds accetta una singola caratteristica o una raccolta di caratteristiche come argomento, non una serie di funzioni. Vedi the documentation. Devi chiamare per es.

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

Se si desidera un riquadro che contiene tutte le funzioni, è necessario per ottenere il rettangolo di selezione per ciascuno di essi, a sua volta e quindi calcolare l'unione di quelli.

+9

Sì. E se 'json' è una FeatureCollection, è semplicemente' d3.geo.bounds (json) '. – mbostock

+0

molte grazie! iniziando a ottenere una sospensione di d3. – Justin