topojson.feature 使用 topojson v2
topojson.feature with topojson v2
我一直在关注 "let's make a map" 教程 https://bost.ocks.org/mike/map/,但是在教程进行到一半时,绘制路径失败并出现关于 topojson.feature() 不是函数的错误。
script.js:14 未捕获类型错误:topojson.feature 不是函数(…)
(匿名函数)@script.js:14
(匿名函数)@d3.min.js:6
呼叫@ d3.min.js:6
e@d3.min.js:6
script.js:
var width = 960,
height = 1160;
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
d3.json("js/uk.json", function(error, uk) {
if (error) return console.error(error);
console.log(uk);
svg.append("path")
.datum(topojson.feature(uk, uk.objects.subunits))
.attr("d", d3.geo.path().projection(d3.geo.mercator()));
});
HTML 包括脚本:
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.0/d3.min.js"></script>
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="utf-8" />
<title>Map test</title>
<link href="css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<script src='js/jquery.js'></script>
<script src='js/d3.min.js' charset="utf-8"></script>
<script src='js/topojson.js'></script>
<script src="js/script.js" type="text/javascript"></script>
</body>
</html>
最初我怀疑问题出在我转换 Pathfile-GeoJSON-TopoJSON 的 topojson 文件上,我将其命名为 uk.js 以便在遵循教程时进行测试。
此处回复中提到的另一个提示:
https://github.com/topojson/topojson/issues/236
但是,更改后问题仍然存在,并在替换 uk.json 后得到确认,我认为自己是:
https://bost.ocks.org/mike/map/uk.json
您缺少 topojson 客户端文件,这些文件已从 v2 中的基本 topojson 代码中分离出来。如果您在代码中包含以下脚本,它应该可以工作:
<script src="https://unpkg.com/topojson-client@2"></script>
我一直在关注 "let's make a map" 教程 https://bost.ocks.org/mike/map/,但是在教程进行到一半时,绘制路径失败并出现关于 topojson.feature() 不是函数的错误。
script.js:14 未捕获类型错误:topojson.feature 不是函数(…)
(匿名函数)@script.js:14
(匿名函数)@d3.min.js:6
呼叫@ d3.min.js:6
e@d3.min.js:6
script.js:
var width = 960,
height = 1160;
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
d3.json("js/uk.json", function(error, uk) {
if (error) return console.error(error);
console.log(uk);
svg.append("path")
.datum(topojson.feature(uk, uk.objects.subunits))
.attr("d", d3.geo.path().projection(d3.geo.mercator()));
});
HTML 包括脚本:
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.0/d3.min.js"></script>
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="utf-8" />
<title>Map test</title>
<link href="css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<script src='js/jquery.js'></script>
<script src='js/d3.min.js' charset="utf-8"></script>
<script src='js/topojson.js'></script>
<script src="js/script.js" type="text/javascript"></script>
</body>
</html>
最初我怀疑问题出在我转换 Pathfile-GeoJSON-TopoJSON 的 topojson 文件上,我将其命名为 uk.js 以便在遵循教程时进行测试。 此处回复中提到的另一个提示: https://github.com/topojson/topojson/issues/236 但是,更改后问题仍然存在,并在替换 uk.json 后得到确认,我认为自己是: https://bost.ocks.org/mike/map/uk.json
您缺少 topojson 客户端文件,这些文件已从 v2 中的基本 topojson 代码中分离出来。如果您在代码中包含以下脚本,它应该可以工作:
<script src="https://unpkg.com/topojson-client@2"></script>