我是 PyQGIS 的新手,我有一个 QgsVectorLayer 似乎不理解的问题
我正在处理脚本以在 QGIS 中构建模型。我正在运行方法结果无法打开的问题。最后一部分的结果是一个没有几何值的 pandas 数据框。我正在尝试将其转换回没有几何形状的矢量图层作为该模型的输出
这是代码片段
# in processAlgorithm
....
#type: pandas dataframe with no geometry
parsed_data_df = self.parse_response_data(response_data)
if parsed_data_df is not None:
results['Matrix'] = QgsVectorLayer(parsed_data_df.to_json(),"matrix","ogr")
return results
WARNING Cannot open {"originIndex":{"0":0,"1":1},"destinationIndex":{"0":0,"1":0},"lengthInMeters":{"0":1008,"1":1198},"travelTimeInSeconds":{"0":174,"1":192}} ().()
我尝试了各种转换(to_json、to_csv、to_list),但似乎都不起作用。我希望有人有办法解决这个问题。
如果您为 QgsVectorLayer 的第一个参数提供 JSON 字符串,则它必须是 GeoJSON 字符串。
您正在使用 Pandas 数据框。您需要使用 GeoPandas 并且您的数据需要是带有几何列的空间数据。
geopandas.GeoDataFrame.to_json
来获取 GeoJSON 字符串。