难以将.shp转换为可用的.json文件

时间:2019-09-18 15:32:39

标签: d3.js geojson geo

我正在尝试将Mike Bostock的“让我们制作地图”教程(https://bost.ocks.org/mike/map/)修改为我自己的房地产地块数据集,但是当我尝试进行渲染时,我得到了: Imgur

我从Shapefile开始,通过修改本教程中的代码将其转换为.json:

ogr2ogr \
  -f GeoJSON \
  parcels.json \
  Parcels_Clipped.shp

然后我将其转换为此:

topojson \
    -o parcels2.json \
    -- \
parcels.json

在d3.js脚本中,我使用以下命令导入了它:

queue()
        .defer(d3.json, 'parcel2s.json')
        .await(drawMap);

这是我的drawMap()函数:

function drawMap( error, parcels ) {

    var width = 600,
        height = 600;

    var projection = d3.geo.albers()
        .center([0, 40.0092216])
        .rotate([-105.2047471, 0])
        .parallels([39.71666666666667, 40.78333333333333])
        .scale(6000)
     //   .fitSize([600,600]);
        .translate([width / 2, height / 2]);

    var path = d3.geo.path()
        .projection(projection)
        .pointRadius(2);

    var svg = d3.select("body").append("svg")
        .attr("width", width)
        .attr("height", height);

  svg.append("path")
        .datum(topojson.feature(parcels, parcels.objects.parcels))
        .attr("d", d3.geo.path().projection(d3.geo.mercator()))
        .attr("class", "parcel");
}

我没有任何错误,至少我得到了东西作为输出,但是正如您从发布的图像中看到的那样,多边形到处都是。他们应该展示房地产包裹。

0 个答案:

没有答案