从命令行调用 MMQGIS 插件

Call MMQGIS plugin from command line

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

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

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

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插件架构,用合适的方法,用合适的参数调用你需要的方法