2013-09-26 11 views
5

Mam gdal 1.10.1 i topojson 1.4.0 zainstalowane na moim MacO 10.7.5. Pobrałem formularz ne_110m_ocean Natural Earth.Jak przekonwertować plik kształtu oceanu na topojson

pomyślnie przekształcił shapefile w GeoJSON:

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

Potem przekształcił GeoJSON do topojson:

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

Kiedy wykreślić używając pliku GeoJSON wszystko działa poprawnie.

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

Kiedy wykreślić przy użyciu pliku topojson, zamiast wielokątów oceanów dostaję wielokątów ziem !!!!

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"); 
}); 

Czy ktoś może pomóc?

góry dzięki

+0

ja również uzyskać dziwne rezultaty podczas pracy z tego pliku. Zasadniczo miałem pasek w środku danych, gdzie ocean i ląd zostały odwrócone. Użyłem [ShapeEscape] (http://www.shpescape.com/mix/). Opublikuję coś w Grupach dyskusyjnych Google i zobaczę, czy ktoś tam ma jakieś pomysły. – user1614080

+0

Nadal nie jestem pewien, dlaczego tak się dzieje, ale używając 'no-force-clockwise' napraw problem. Zbadam trochę więcej i wypełnię raport o błędzie, jeśli będzie to konieczne. –

Odpowiedz

4

używając opcji --no-force-clockwise rozwiązać ten problem:

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

Dziękuję Pablo, który naprawił problem. – poujoo

+2

Czy możesz zaakceptować odpowiedź? –

+1

Przykład: http://bl.ocks.org/mbostock/6713736 – mbostock

Powiązane problemy