2012-12-19 11 views
5

ich erfolgreich GeoJSON Dateien geladen, um die Feature-Sammlung in eind3.js GeoJSON und Grenzen

d3.geo.path() 

Das Problem mit meiner aktuellen Implementierung geladen habe, ist, dass es die Skalierung beginnt, so dass der Pfad ein Punkt ist, und Ich muss jedes mal heranzoomen. Jetzt weiß ich, es gibt viele Methoden, um über die Zoomstufe richtige Einstellung, aber ich hatte gehofft,

d3.geo.bounds() 

Angesichts der folgenden GeoJSON Funktion nutzen zu können:

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 

und

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 

Wenn ich führe

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

Ich bin nicht sicher, was falsch ist, klar habe ich eine viel larget Datenmenge als oben, aber ich versuche nur, um die Ausgabe zu verstehen:ich unendlich für die Grenzen zu bekommen. Diese Ausgabe ergibt für mich keinen Sinn und es fehlt eindeutig etwas Einfaches an der Handhabung von geoJSON-Daten. Jede Hilfe, um die Grenzen zum Funktionieren zu bringen, wäre hilfreich.

Danke.

Antwort

9

d3.geo.bounds verwendet ein einzelnes Feature oder eine FeatureCollection als Argument, nicht als Array von Features. Siehe the documentation. Sie müssen z.

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

Wenn Sie einen Begrenzungsrahmen möchten, die alle Funktionen enthält, müssen Sie für jeden wiederum den Begrenzungsrahmen bekommen und dann die Vereinigung derer zu berechnen.

+9

Ja. Und wenn 'json' eine FeatureCollection ist, ist es einfach' d3.geo.bounds (json) '. – mbostock

+0

vielen dank! beginnen, d3 zu bekommen. – Justin