Mat*_*lla 2 shapefile geojson d3.js topojson
我正在尝试将 shapefile 转换为 GeoJSON,然后转换为 TopoJSON,如Let's Make a Map 中所述。沿着链条的某个地方,有些东西被破坏了,我得到的图像如下所示:

我的工作流程如下:
将 shapefile 转换为 GeoJSON
ogr2ogr -f GeoJSON vt_towns.json Boundary_BNDHASH_region_towns.shp
Run Code Online (Sandbox Code Playgroud)将 GeoJSON 转换为 TopoJSON
topojson -p TOWNNAME -p CNTY -o vt.json vt_towns.json
Run Code Online (Sandbox Code Playgroud)插入基本模板,对 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>
Run Code Online (Sandbox Code Playgroud)这不是我的第一张 d3 地图(这是我的第二张!)但我非常不知道出了什么问题。我最好的猜测是它与包含许多 shapefile 及其随附文件的解压缩数据集有关。
看来您的文件使用网格坐标系,使用选项-t_srs EPSG:4326获取纬度和经度:
ogr2ogr -f GeoJSON -t_srs EPSG:4326 vt_towns.json Boundary_BNDHASH_region_towns.shp
Run Code Online (Sandbox Code Playgroud)
然后继续您的工作流程。
| 归档时间: |
|
| 查看次数: |
3358 次 |
| 最近记录: |