2013-09-26 6 views
5

Ho gdal 1.10.1 e topojson 1.4.0 installato sui miei MacO 10.7.5. Ho scaricato il modulo ne_110m_ocean Natural Earth.Come convertire il file shape dell'oceano in topojson

ho trasformato con successo il file in forma GeoJSON:

ogr2ogr \ 
    -f GeoJSON \ 
    ocean.json \ 
    ne_110m_ocean.shp 

Poi ho trasformato il GeoJSON in topojson:

topojson \ 
    -o ocean_tj.json \ 
    ocean=ocean.json \ 

Quando ho grafico usando il file GeoJSON tutto funziona benissimo.

d3.json("ocean.json", function(json) { 
    svg.selectAll("path") 
.data(json.features) 
.enter() 
.append("path") 
.attr("d", path) 
.style("fill", "steelblue"); 
}); 

Quando ho grafico usando il file topojson, invece di avere i poligoni degli oceani che ricevo i poligoni delle terre !!!!

d3.json("ocean_tj.json", function(topology) { 
var ocean = topojson.feature(topology, topology.objects.ocean); 
svg.append("path") 
.datum(ocean) 
.attr("d", path) 
.style("fill", "red"); 
}); 

Qualcuno può aiutare?

Grazie in anticipo

+0

ho anche ottenere alcuni strani risultati quando si lavora con quel file. Fondamentalmente avevo una striscia in mezzo ai dati in cui l'oceano e la terra erano invertiti. Ho usato [ShapeEscape] (http://www.shpescape.com/mix/). Pubblicheremo qualcosa su Google Gruppi e vedrò se qualcuno laggiù ha qualche idea. – user1614080

+0

Non sono ancora sicuro del motivo per cui ciò accada, ma l'uso di 'no-force-clockwise 'risolve il problema. Analizzerò un po 'di più e riempirò una segnalazione di bug se è necessario. –

risposta

4

Utilizzando l'opzione --no-force-clockwise risolvere il problema:

topojson -o ocean_tj.json ocean=ocean.json --no-force-clockwise 
+0

Grazie Pablo, è stato risolto il problema. – poujoo

+2

Puoi accettare la risposta? –

+1

Esempio: http://bl.ocks.org/mbostock/6713736 – mbostock