1

我用 D3.js 制作了一张世界地图。一切都像一个魅力。然后,我将相同的代码用于不同的 geojson 文件,仅描述瑞典,并得到多个解析错误。两个 json 文件具有相同的结构,格式良好等。唯一的区别是坐标,所以我怀疑这就是问题所在。有任何想法吗?

我正在使用 QGIS 将 shapefile 转换为 geojson 格式。我得到的错误是:“错误:解析 d='[路径字符串]'时出现问题”。并且路径字符串在这里和那里都包含 NaN。

瑞典.json 摘录:

{
"type": "Feature",
"id": 0,
"properties": {
    "KNKOD": "0114",
    "KNNAMN": "Upplands Väsby",
    "LANDAREAKM": 75.4
},
"geometry": {
    "type": "Polygon",
    "coordinates": [
        [
            [
                1620218.000425555,
                6599561.998826771
            ],...

Country.json 摘录

{
"type": "Feature",
"id": 0,
"properties": {
    "type": "Country",
    "name": "Aruba"
},
"geometry": {
    "type": "Polygon",
    "coordinates": [
        [
            [
                -69.89912109375,
                12.452001953124991
            ],...

Javascript

var canvas = d3.select("body").append("svg")
    .attr("width", 960)
    .attr("height", 1000)

d3.json("sweden/countries.geojson", function (data) {

var group = canvas.selectAll("g")
    .data(data.features)
    .enter()
    .append("g")

var path = d3.geo.path().projection(d3.geo.mercator());

var areas = group.append("path")
    .attr("d", path)
})
4

1 回答 1

0

您的 GeoJSON 文件不在同一个坐标系中。瑞典的坐标看起来像是在UTM中。使用 QGIS 转换为 GeoJSON 时,请确保您使用的瑞典坐标系与您对世界文件使用的坐标系相同——这应该可以解决错误。

于 2013-04-05T16:53:35.563 回答