从GeoJSON绘制SVG路径时出现分析错误

时间:2013-04-05 16:18:56

标签: javascript d3.js gis geojson geomap

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

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

Sweden.json摘录:

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

Countries.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)
})

1 个答案:

答案 0 :(得分:0)

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