2013-09-26 38 views
5

Tôi có gdal 1.10.1 và topojson 1.4.0 được cài đặt trên máy MacO của tôi 10.7.5. Tôi đã tải xuống biểu mẫu ne_110m_ocean Tự nhiên Trái đất.Làm thế nào để chuyển đổi tập tin hình dạng đại dương vào topojson

tôi chuyển đổi thành công file hình trong GeoJSON:

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

Sau đó, tôi chuyển các GeoJSON vào topojson:

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

Khi tôi âm mưu sử dụng file GeoJSON tất cả hoạt động tốt.

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

Khi tôi vẽ sử dụng tệp topojson, thay vì có đa giác của đại dương, tôi nhận được đa giác của các vùng đất !!!!

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

Có ai giúp được không?

Cảm ơn trước

+0

Tôi cũng nhận được một số kết quả kỳ lạ khi làm việc với tập tin đó. Về cơ bản tôi đã có một dải xuống giữa dữ liệu nơi đại dương và đất đã được đảo ngược. Tôi đã sử dụng [ShapeEscape] (http://www.shpescape.com/mix/). Tôi sẽ đăng nội dung nào đó lên Google Groups và xem liệu có ai ở đó có bất kỳ ý tưởng nào không. – user1614080

+0

Tôi vẫn không chắc chắn tại sao điều này xảy ra, nhưng việc sử dụng 'no-force-clockwise' sẽ khắc phục vấn đề. Tôi sẽ điều tra thêm một chút và điền vào một báo cáo lỗi nếu cần thiết. –

Trả lời

4

Sử dụng tùy chọn --no-force-clockwise khắc phục vấn đề:

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

Cảm ơn bạn Pablo đã khắc phục sự cố. – poujoo

+2

Bạn có thể chấp nhận câu trả lời không? –

+1

Ví dụ: http://bl.ocks.org/mbostock/6713736 – mbostock