2013-09-26 3 views
5

У меня есть gdal 1.10.1 и topojson 1.4.0, установленные на моих MacOS 10.7.5. Я загрузил форму ne_110m_ocean Natural Earth.Как преобразовать файл формы океана в topojson

я успешно преобразовал файл формы в GeoJSON:

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

Тогда я преобразовал в формате GeoJSON topojson:

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

Когда я сюжет с помощью файла GeoJSON все работает отлично.

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

Когда я сюжет с помощью файла topojson, вместо того, чтобы многоугольники океанов я получаю многоугольники земли !!!!

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

Может ли кто-нибудь помочь?

Заранее спасибо

+0

Я также получить некоторые странные результаты при работе с этим файлом. В основном у меня была полоса, посредине которой были перевернуты океан и земля. Я использовал [ShapeEscape] (http://www.shpescape.com/mix/). Я бы опубликовал кое-что в группах Google и посмотрю, есть ли у кого-нибудь идеи. – user1614080

+0

Я все еще не уверен, почему это происходит, но с помощью 'no-force-clockwise' исправляет проблему. Я буду исследовать немного больше и заполнить отчет об ошибке, если это необходимо. –

ответ

4

Используя опцию --no-force-clockwise решить проблему:

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

Спасибо, Пабло, что исправил проблему. – poujoo

+2

Можете ли вы принять ответ? –

+1

Пример: http://bl.ocks.org/mbostock/6713736 – mbostock

Смежные вопросы