javascript - 从 GeoJSON 绘制 SVG 路径时出现解析错误

标签 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)
})

最佳答案

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

关于javascript - 从 GeoJSON 绘制 SVG 路径时出现解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15838799/

相关文章:

d3.js - 使用d3 js中的对角线函数在两点之间绘制曲线

python - 如何以匀称的方式简化边界几何

python - 将随机纬度/经度点合并到 Pandas 普查区旅行调查数据中

javascript - D3 : Substituting d3. svg.diagonal() 和 d3.svg.line()

javascript - 动态加载后获取最后的 css 或 js 代码

javascript - 引用资料 onChange 处理程序中的 UI SelectField 组件

javascript - 如何在 JavaScript 中根据 "before"和 "after"条件对数组进行排序?

javascript - 使用 'zero' 数据破解 d3 饼图

python - 如何将 HEXEWKB 转换为纬度、经度(在 python 中)?

javascript - Scrapy splash 响应不会返回完整的 html