我正在尝试将 shapefile 转换为 GeoJSON,然后转换为 TopoJSON,如Let's Make a Map中所述。沿着链条的某个地方,某些东西被破坏了,我得到的图像如下所示:
我的工作流程如下:
- 从以下网址下载 shapefile:http: //vcgi.vermont.gov/warehouse/search_tools - 我正在使用主城镇边界数据,特别是“Boundary_BNDHASH_region_towns.shp”文件。
将 shapefile 转换为 GeoJSON
ogr2ogr -f GeoJSON vt_towns.json Boundary_BNDHASH_region_towns.shp
将 GeoJSON 转换为 TopoJSON
topojson -p TOWNNAME -p CNTY -o vt.json vt_towns.json
插入基本模板,对 Mike Bostock 的示例进行一些小的修改
<!DOCTYPE html> <meta charset="utf-8"> <style> /* CSS goes here. */ </style> <body> <script src="http://d3js.org/d3.v3.min.js"></script> <script src="http://d3js.org/topojson.v1.min.js"></script> <script> var width = 960, height = 1160; var svg = d3.select("body").append("svg") .attr("width", width) .attr("height", height); var projection = d3.geo.transverseMercator() .rotate([72.57, -44.20]) .translate([175,185]) .scale([100]); // Define path generator var path = d3.geo.path() .projection(projection); d3.json("vt.json", function(error, vt) { var vermont = topojson.feature(vt, vt.objects.vt_towns); svg.append("path") .datum(vermont) .attr("d", path); }); </script>
这不是我的第一张 d3 地图(这是我的第二张地图!)但我非常不知道出了什么问题。我最好的猜测是它与包含许多 shapefile 及其随附文件的解压缩数据集有关。