2014-02-10 5 views
0

Я новичок в d3 и GeoJson. У меня есть this GeoJSON, который отображается на geojson lint. Я пытаюсь отобразить в формате GeoJSON виде карты со следующей кодировкой:Есть ли у меня ошибка в моем GeoJSON или ошибка в коде D3?

var width = 960, 
    height = 1160; 

var svg = d3.select("body").append("svg") 
    .attr("width", width) 
    .attr("height", height); 

var projection = d3.geo.transverseMercator().translate([width/2, height/2]).scale(150).center(-90.088, 29.957); 

var path = d3.geo.path().projection(projection); 

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

Предпоследняя последней строке .attr («D», путь) бросали следующее сообщение об ошибке глубоко в трассировки стека d3:

Error: Problem parsing d="MNaN,NaNLNaN,NaNL8.76110196153104,1051.238898038469L8.76110196153104,108.76110196153104L951.238898038469,108.76110196153104L951.238898038469,1051.238898038469LNaN,NaNLNaN,NaNLNaN,NaNLNaN,NaNLNaN,NaNLNaN,NaNZMNaN,NaNLNaN,NaNLNaN,NaNZMNaN,NaNLNaN,NaNLNaN,NaNZMNaN 

Есть ли проблема с моим GeoJSON? Или проблема с тем, как я использую GeoJSON с D3? Похоже, эта ошибка возникает из-за неправильного ввода в D3, но мой GeoJSON lints. Возможно, это проблема с моим синтаксисом D3, а не с моим GeoJSON?

GeoJSON похоже, что он загружается должным образом. Когда я console.log (JSON) сразу после вызова к d3.json("orleans.json", function(json) он показывает следующее:

enter image description here

+0

Вы подтвердили правильность загрузки JSON? –

+0

@LarsKotthoff Я не знаю, как это сделать. Можете ли вы объяснить, как это сделать? – bernie2436

+0

. 'Console.log (JSON)'. –

ответ

1

Есть две проблемы с вашим кодом:

  • .center() функция принимает один массив аргумент, а не два.
  • Поперечная проекция мерцатора не поддерживает антимиридную резку.

Чтобы исправить, передайте массив вместо двух чисел и ограничьте центр до -90 градусов или меньше. Полная демо-версия here.