无法将 GeoJSON 转换为 TopoJOSN

Cannot Transform GeoJSON to TopoJOSN

我正在尝试将 GeoJSON 转换为 TopoJOSN 以便放入 Vega-Lite。所以我可以画一张地图。

我使用了 https://geojson-maps.ash.ms/ to download the .json for map Oceania (Low resolution), then I put this file into https://mapshaper.org/ 以便我可以再次将其导出为 .topojson

但是,即使我选择导出为.topojson,文件仍然给我.json. 因为我把这个URL放到Vega-Late时,它不能显示大洋洲地图。(我的代码在问题的最底部)

谁知道我怎样才能变成拓扑json?或者甚至我的 URL?

有什么问题

您的规范有几个问题:

  • 您的 GeoJSON 文件不包含名为 "states" 的特征。它包括一个名为 "custom".
  • 的功能
  • 您正在使用 albersusa 投影,它只显示美国,而您的 GeoJSON 在此边界内没有数据。

解决这些问题,并使用正字法 projection centered on Australia, gives you a better chart (view in editor):

{
  "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
  "width": 500,
  "height": 300,
  "layer": [
    {
      "data": {
        "url": "https://raw.githubusercontent.com/BocongZhao823/My_First_Webpage-/main/Ausmap.geo.json",
        "format": {
          "type": "topojson",
          "feature": "custom"
        }
      },
      "mark": {
        "type": "geoshape",
        "fill": "lightgray",
        "stroke": "white"
      }
    },
    {
      "data": {
        "url": "https://raw.githubusercontent.com/BocongZhao823/My_First_Webpage-/main/rainfall_tidy.csv"
      },
      "mark": "circle",
      "encoding": {
        "longitude": {
          "field": "longitude",
          "type": "quantitative"
        },
        "latitude": {
          "field": "latitude",
          "type": "quantitative"
        },
        "size": {"value": 10},
        "color": {"value": "steelblue"}
      }
    }
  ],
  "config": {
    "projection": {
      "type": "orthographic",
      "rotate": [-140, 30, 0]
    }
  }
}