使用topojson来绘制具有不同范围的shapefile

时间:2014-05-04 01:31:02

标签: gdal topojson

我从1790年到1860年每十年都有美国人口普查的shapefile。由于美国的成长,这些shapefile的范围是不同的。这里使用ogrinfo -so -al是1790,Extent: (-94.732708, 30.355644) - (-66.949831, 48.999992)和1860年Extent: (-124.762578, 24.521051) - (-66.949831, 49.384358)的范围。

我想使用topojson的{​​{1}}标志将这些标记投影到屏幕坐标。运行此命令适用于每个文件:

--projection

然后我可以在d3中显示地图。困难在于美国的每张地图都是居中的,这意味着1790年的美国地图与1860年的地图不符,依此类推。这就是我的意思:

US 1790

US 1860

我已尝试使用topojson -o us_1790.json --simplify-proportion 0.10 \ --projection 'd3.geo.albers()' \ --width 960 \ --height 500 \ --margin 10 \ -- shp/epsg4326/county_1790.shp 标志并在1860年将范围框设置为范围,但这不起作用。我也尝试过使用--bbox搜索范围来设置范围。

如果需要,我可以在浏览器中进行投影,但我更愿意预先投影它们,以便地图尽可能快。我该怎么办?

1 个答案:

答案 0 :(得分:2)

请勿使用--width--height;指定投影的比例并转换,您将获得一个对所有输入都相同的固定投影。事实上,由于默认的d3.geo.albers scale和translate设计为适合960×500视口,你可以简单地说:

topojson \
  -o us_1790.json \
  --simplify-proportion 0.10 \
  --projection 'd3.geo.albers()' \
  -- shp/epsg4326/county_1790.shp