我有一个geoJSON文件,想用d3来渲染,但是很难针对正确的特征进行投影。
目前,我已经在很多d3示例中找到了us.json文件,但我目前正在处理的地图使用美国“通勤区”(CZ)而不是土地、州或县。
我习惯于调用
topojson.feature(us, us.objects.states)
为了显示正确的图层,但我的文件没有组织成对象,也没有多个图层。这是我尝试使用的geoJSON文件的摘录:
{"type":"FeatureCollection","bbox":[-120.30602148510043,6.667736880597216,-70.95829310710806,34.46308750538215],"features":[{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-83.802805983004,22.64602264051764],[-83.8080569412408,22.638128812605782],
以下是我编写的无法成功呈现的代码:
d3.json("CZ90.zip.geojson", function(error, us) {
if (error) throw error;
d3.select("svg").append("path")
.datum(topojson.feature(us, us.CZ90))
.attr("d", d3.geo.path());
});
由于没有对象,我省略了“.object”,当我将文件拖入Mapshaper时,它会正确呈现一个名为“CZ90”的图层,这就是我写“us.CZ90”而不是“us.objects.states”的原因。
我意识到我调用的是“topojson.feature”,而不是特定于geoJSON的内容,但我也无法在Mapshaper中成功转换文件为topoJSON格式,而不失去投影类型/信息。
在.datum调用中正确定位此图层的方法是什么?
如果我能找到像us.json这样包含通勤区域图层的topoJSON文件,整个问题也将得到解决!