topojson.py问题从geopandas转换Point对象创建了geojson

时间:2018-06-06 18:36:43

标签: python gis topojson geopandas

我正在尝试使用topojson.py将信息从geopandas df转换为使用python的topojson。在这种情况下,gpd df的所有几何形状都是匀称的点。 geo_df.head()看起来像这样:

    geometry
0   POINT (61.39313083609281 34.73857657446109)
1   POINT (61.68715178647459 34.62839735680247)
2   POINT (61.02182917574118 34.6419671306646)
3   POINT (60.9017205031241 32.07261235932085)
4   POINT (61.0167260004123 32.15043416326984)

我可以使用:

转换为geojson
gpd_df.to_file("points.json", driver="GeoJSON")

但是当我尝试将geojson转换为topojson时:

topojson("points.json", "pointstopo.json", quantization=1e6, simplify=0.0001)

我收到以下错误:

~/anaconda3/lib/python3.6/site-packages/topojson/mytypes.py in 
Point(self, point)
     35             self.polygon(coordinate);
     36     def Point(self,point):
---> 37         self.point(point['coordinates'])
     38     def Polygon(self,polygon):
     39         self.polygon(polygon['coordinates'])
TypeError: point() takes 1 positional argument but 2 were given

当我查看geojson时,点坐标被赋予两个值:

"type": "Feature", "properties": { }, "geometry": { "type": "Point", 
"coordinates": [ 62.269649605592754, 32.429278041035452 ] } },

看起来topojson.py期待一个形状上的Point(或类似的东西),它只有一个坐标的参数,而不是我的geojson。

我对topojson.py错误的理解是否正确?如果是这样,对解决方法的任何想法?我正确使用topojson.py吗?

据我所知,如果我只是编码Point几何体,我没有从topojson格式中获得任何好处,但我计划在其他情况下使用它来获得点和多边形。

0 个答案:

没有答案