MarbleWidget and MarbleMap provide their full amount of methods as a D-BUS Interface. Therefore you can easily create a shell-script to control Marble using the qdbus command line tool.
So assuming that e.g. 25733 would be the PID of the running process you could call
qdbus org.kde.marble-25733 /MarbleWidget
to get a list of all the methods that MarbleWidget supports. From this list you can choose the one that you'd like to call, e.g.
qdbus org.kde.marble-25733 /MarbleWidget org.kde.MarbleWidget.zoomIn
to zoom into the map. Note that for function calls you shouldn't pass the brackets "()".
As a convenient tool you can use qdbusviewer to get a graphical list of the interfaces and methods that get provided through D-BUS.
This article is a stub, please extend it.