Python Folium Topojson 文件未渲染

标签 python geojson topojson folium

您好,我正在尝试在 jupyter 笔记本中使用 Folium 渲染这张 map 。

https://github.com/kthotav/TopoJSON-Maps/blob/master/usa/usa-states/colorado/colorado-counties.json

由于这是 TopoJson,所以它应该非常简单

m = folium.Map([39, -105], zoom_start=7)
folium.TopoJson(
    open('./data/colorado-counties.json'),
    object_path='objects.colorado-counties'
).add_to(m)
m

这会渲染基础图层,但不会绘制县的多边形。

我找到了this other example on stackoverflow并且使用基本相同的代码就可以很好地渲染。

m = folium.Map(location=[40.7,-74], zoom_start=10)
folium.TopoJson(
    open('./data/nyc_census_tracts_2010.geojson'),
    object_path='objects.nyct2010',
).add_to(m)
m

我找不到这两个文件之间的任何大范围差异。是否存在某些 topojson 版本不兼容的情况?

最佳答案

好的,明白了。 folium 无法解析其中包含 - 的对象名称。可能是 JavaScript 翻译的问题?

有趣的测试

作品

m = folium.Map([0, 0], zoom_start=7)
folium.TopoJson(
    {
      "type":"Topology",
      "transform":{
        "scale": [1,1],
        "translate": [0,0]
      },
      "objects":{ 
        "two_squares":{
          "type": "GeometryCollection",
          "geometries":[
            {"type": "Polygon", "arcs":[[0,1]],"properties": {"name": "Left_Polygon" }},
            {"type": "Polygon", "arcs":[[2,-1]],"properties": {"name": "Right_Polygon" }}
          ]
        }
      },
      "arcs": [
        [[1,2],[0,-2]],
        [[1,0],[-1,0],[0,2],[1,0]],
        [[1,2],[1,0],[0,-2],[-1,0]]
      ]
    },
    object_path='objects.two_squares'
).add_to(m)
m

不起作用

m = folium.Map([0, 0], zoom_start=7)
folium.TopoJson(
    {
      "type":"Topology",
      "transform":{
        "scale": [1,1],
        "translate": [0,0]
      },
      "objects":{ 
        "two-squares":{
          "type": "GeometryCollection",
          "geometries":[
            {"type": "Polygon", "arcs":[[0,1]],"properties": {"name": "Left_Polygon" }},
            {"type": "Polygon", "arcs":[[2,-1]],"properties": {"name": "Right_Polygon" }}
          ]
        }
      },
      "arcs": [
        [[1,2],[0,-2]],
        [[1,0],[-1,0],[0,2],[1,0]],
        [[1,2],[1,0],[0,-2],[-1,0]]
      ]
    },
    object_path='objects.two-squares'
).add_to(m)
m

关于Python Folium Topojson 文件未渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49059042/

相关文章:

python - "Why are the cosine similarities calculated by the library and by myself different?"

python - Matplotlib,沿 x 轴移动箱线图?

javascript - map 框/传单上的聚类标记

javascript - 如何嵌套 GeoJSON/TopoJSON 几何图形或使用 D3 嵌套生成的路径?

python - 如何检查列表中是否存在字符序列?

Python 包构建工作正常,但 dist 中的 zip 不包含所有文件

highcharts - 如何获得世界各国主要城市的geojson

javascript - Leaflet.Draw 使用 GeoJson 保存数据

javascript - 如何获取TopoJSON功能的SVG路径数据而不将其添加到DOM?

java - GSON读入数组类元素