私はDITA(XML)からJSONに変換されたAPI記述を使用して、d3で鉄道図を作成しています。私はさまざまな要素を一度しか定義しません(sidingL
とsidingR
のように私のコードにあります)。私はsiding
スタイルを持っています。私はsidingL
(およびsidingR
のバリアント)を持っている私のグローバル変数の宣言で:再利用可能なsvgエンティティを作成するために必要なd3構造体は何ですか
var sidingL = d3.svg.path()
.attr("d", "M50,0 v80 a10,10 0 0 10,10 h20")
.attr("class", "siding");
その後、SVGキャンバス(svgContainer
)を追加した後、私が追加:
var L = svgContainer.append(sidingL);
var R = svgContainer.append(sidingR);
をそれぞれのインスタンスsidingL
とsidingR
この実験では、SVGキャンバスに表示された各サイディングのうちの1つを表示するために、ほとんどのコードを削除しましたs。何もレンダリングされておらず、Firefox Web Developer Toolkit、Console、またはDebugビューで役立つものは何も表示されません。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Railroad siding</title>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<link
href='http://fonts.googleapis.com/css?family=Lato&subset=latin,latin-ext'
rel='stylesheet' type='text/css'>
<style>
.siding {
fill: none;
stroke: black;
stroke-width: 6px;
stroke-linecap: round;
stroke-linejoin: round;
}
</style>
</head>
<body>
<script type="text/javascript">
//set up constants
var canvasWidth= 4000;
var canvasHeight=800
var sidingL = d3.svg.path()
.attr("d", "M50,0 v80 a10,10 0 0 10,10 h20")
.attr("class", "siding");
var sidingR = d3.svg.path()
.attr("d", "M100,0 v80 a10,10 0 1 10,10 h-20")
.attr("class", "siding");
// Get the data
var data;
d3.json("APIsyntax.json", function(error, json) {
//if (error) return console.warn(error);
// Canvas
var svgContainer = d3.select("body")
.append("svg")
.attr("width", canvasWidth)
.attr("height", canvasHeight);
// tryout for option siding path
var L = svgContainer.append(sidingL);
var R = svgContainer.append(sidingR);
});
</script>
</body>
</html>