我从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年的地图不符,依此类推。这就是我的意思:
我已尝试使用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
搜索范围来设置范围。
如果需要,我可以在浏览器中进行投影,但我更愿意预先投影它们,以便地图尽可能快。我该怎么办?
答案 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