It's a lot like scripting a cutscene, only slightly easier thanks to the two dimensions involved. Something like the following should work on a new marker named obj_marker:
showGPS false
showPad false
showCompass false
showWatch false
showRadio false
mapAnimClear
mapAnimAdd [1, 0.25, getPos player]
mapAnimCommit
ForceMap true
@mapAnimDone
~2
mapAnimAdd [2, 0.1, getMarkerPos "obj_marker"]
mapAnimCommit
@mapAnimDone
~2
ForceMap false
showGPS true
showPad true
showCompass true
showWatch true
showRadio true
A lot of that isn't strictly necessary:
show...
false / true hides the bits and pieces that might obscure the map screen
the first
mapAnimAdd [... getPos player] moves the map to the player's position from wherever it was before.
mapAnimAdd is fairly straightforward, the only non-obvious aspect being the zoom attribute. This could rather be considered the resolution: the lower the number, the finer detail that can be seen - ie. greater zoom into the map.
As if that's made things any more clear.However, I can't find an off-screen way of returning the map to the player's position, so it will remain centered on the new objective.