代码之家  ›  专栏  ›  技术社区  ›  Paxi

从命令行调用MMQGIS插件

  •  0
  • Paxi  · 技术社区  · 9 年前

    我想用python自动化一些qgis过程。我发现了一篇有趣的文章( http://www.qgistutorials.com/en/docs/running_qgis_jobs.html )它描述了如何在日志中查看处理命令。我检查了它,它适用于内置命令,但我还需要使用一个名为MMQGIS的插件。日志不包含此插件的进程命令。我可以从命令行调用它吗?

    我的另一个解决方案是,如果我可以只使用内置函数创建一个平头边缘缓冲区,因为这样我就不需要使用这个插件,希望日志将包含处理命令。

    1 回复  |  直到 9 年前
        1
  •  1
  •   Enrico Ferreguti    7 年前

    您可以从您的插件中引用另一个插件,从qgis.core导入插件dict:

    from qgis.core import plugins  #QGIS2
    from qgis.utils import plugins #QGIS3
    

    然后,您可以列出所需插件的所有公开方法和属性。在您的情况下:

    dir (plugins['mmqgis'])
    

    你会得到

    ['__doc__', '__init__', '__module__', 'animate_columns', 'animate_columns_action', 'animate_lines', 'animate_lines_action', 'animate_menu', 'animate_rows', 'animate_rows_action', 'attribute_export', 'attribute_export_action', 'attribute_join', 'attribute_join_action', 'buffers', 'buffers_action', 'color_ramp', 'combine_menu', 'create_menu', 'delete_duplicate_action', 'delete_duplicate_geometries', 'float_to_text', 'float_to_text_action', 'geocode_menu', 'geocode_street_layer', 'geocode_street_layer_action', 'geocode_web_service', 'geocode_web_service_action', 'geometry_convert', 'geometry_convert_action', 'geometry_export', 'geometry_export_action', 'geometry_import', 'geometry_import_action', 'grid', 'grid_action', 'gridify', 'gridify_action', 'hub_distance', 'hub_distance_action', 'hub_lines', 'hub_lines_action', 'iface', 'import_export_menu', 'initGui', 'kml_export', 'kml_export_action', 'merge', 'merge_action', 'mmqgis_add_submenu', 'mmqgis_menu', 'modify_menu', 'search', 'search_action', 'search_select_menu', 'select', 'select_action', 'sort', 'sort_action', 'spatial_join', 'spatial_join_action', 'street_address_join', 'street_address_join_action', 'text_to_float', 'text_to_float_action', 'unload', 'voronoi', 'voronoi_action']
    

    现在,如果您想执行插件方法:

    plugins['mmqgis'].attribute_join()
    

    然后,您必须深入研究mmqgis插件架构,以使用适当的方法和参数调用所需的方法