【发布时间】:2015-08-05 20:25:48
【问题描述】:
我对 D3 有点陌生,我正在尝试为我工作的组织开展一个项目。我需要用我们收集的一些数据绘制肯尼亚的等值线图。我正在研究 Scott Murray 的书 Interactive Data Visualization for the Web。在他的书中,他使用以下内容从美国各州的 json 文件中生成路径:
//Width and height
var w = 500;
var h = 300;
//Define default path generator
var path = d3.geo.path();
//Create SVG element
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);
//Load in GeoJSON data
d3.json("us-states.json", function(json) {
//Bind data and create one path per GeoJSON feature
svg.selectAll("path")
.data(json.features)
.enter()
.append("path")
.attr("d", path);
});
我尝试修改此代码以从我从下载的肯尼亚 shapefile 创建的 json 文件中绘制肯尼亚县。 json 文件的结构看起来就像美国各州文件的结构,但是当我在浏览器中查看 HTML 时,我看不到任何行。我检查控制台和路径占位符是否没有数据。如果我换入 US-states.json 文件,我会在浏览器中看到带有数据的路径和地图。
谁能帮帮我。
谢谢
【问题讨论】:
-
您似乎没有为您的路径分配投影。
-
哪种投影最适合使用?
-
任何都应该是合适的,除了美国阿尔伯斯。
-
您可能会发现this question 很有帮助。
-
问题可能是 D3 需要经纬度,而 shape 文件使用不同的坐标系。一个快速检查的方法是查看 GeoJSON 文件中的几个点:它们的经度是否在 38 左右,纬度是否接近于零? Mike Bostock's Let's Make a Map tutorial 可能很有用,尤其是它提到在 ogr2ogr 中使用
-t_srs EPSG:4326。
标签: javascript json d3.js maps geojson