gpt4 book ai didi

d3.js - Shapefile 到 TopoJSON 的转换问题

转载 作者:行者123 更新时间:2023-12-02 05:01:56 26 4
gpt4 key购买 nike

我正在尝试将 shapefile 转换为 GeoJSON,然后再转换为 TopoJSON,如 Let's Make a Map 中所述.在链的某个地方,有些东西被破坏了,我得到的图像如下所示: Corrupt VT map

我的工作流程如下:

  1. 从以下位置下载 shapefile:http://vcgi.vermont.gov/warehouse/search_tools -我正在使用 Master Town Boundary数据,特别是“Boundary_BNDHASH_region_towns.shp”文件。
  2. 将 shapefile 转换为 GeoJSON

    ogr2ogr -f GeoJSON vt_towns.json Boundary_BNDHASH_region_towns.shp
  3. 将 GeoJSON 转换为 TopoJSON

    topojson -p TOWNNAME -p CNTY -o vt.json vt_towns.json
  4. 插入基本模板,对 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 map (这是我的第二张!),但我对出了什么问题一头雾水。我最好的猜测是它与包含许多 shapefile 及其随附文件的解压缩数据集有关。

最佳答案

您的文件似乎使用了网格坐标系,使用选项 -t_srs EPSG:4326 获取经纬度:

ogr2ogr -f GeoJSON -t_srs EPSG:4326 vt_towns.json Boundary_BNDHASH_region_towns.shp

然后继续您的工作流程。

关于d3.js - Shapefile 到 TopoJSON 的转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16925131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com