如何为加州人口密度正确生成 TopoJSON

How to properly generate TopoJSON for California Population Density

我一直在尝试遵循 Mike Bostock 的加利福尼亚人口密度示例:bl.ocks。org/mbostock/5562380

我克隆了他的 Git 存储库并把他的 counties.shp 用于加利福尼亚,然后我去 Census.gov 网站下载了加利福尼亚的最新 2015 年文件。

然后我 运行 在 两个 shapefile 上执行以下命令以重新投影它们:

ogr2ogr \
    -f 'ESRI Shapefile' \
    -t_srs 'EPSG:3310' \
    counties.shp \
    shp/ca/counties.shp

ogr2ogr \
    -f 'ESRI Shapefile' \
    -t_srs 'EPSG:3310' \
    tracts.shp \
    shp/ca/cb_2015_06_tract_500k.shp

在此之后,我 运行 以下 TopoJSON 命令:

topojson
    -e ACS_14_5YR_B01003_with_ann.csv \
    --id-property GEOID,GEO.id2 \
    -p population=+HD01_VD01,area=+ALAND \
    -s 1 \
    --width 960 \
    --margin 10 \
    -o ca.json \
    -- tracts.shp counties.shp

这是我的文件(带 ca.json 的形状文件):http://dropcanvas.com/akgqb

但是,我的输出与 Mike 的 ca.json 不同: 'population' 属性 除了 'area' 属性 之外: https://paste.ee/p/RGApI

我不知道我做错了什么。我可能对我的特定文件使用了错误的 TopoJSON 命令。

我已经为此苦苦挣扎了几天,所以非常感谢任何帮助。谢谢!

由于您没有提供所有与 shp 相关的文件,我只能假设您可能需要从 topojson 命令中删除“+”符号。这些属性在 cvs 文件中已经是整数。尝试一下,让我知道它是否有效。 另一个可能的问题是 CSV 文件中的第二行。这可能是不必要的。尝试删除它并重新运行命令。 或者只上传其余文件,以便我们可以正确检查命令。