osg::ref_ptr<UTMGraticule> utm_graticule = new UTMGraticule(utm_graticule_options);
For some reason this doesn't work, can you point me where I am mistaken?
[Question 2 (UTMGraticule)]
My second question: is there any way to make UTMGraticule more precise? At this point it only shows the gzd zones which is not enough for my application, if there's no osgEarth utility for this, maybe someone can share an algorithm that solves this problem?
Just create your UTMGraticule and add it to the Map as a layer (see osgearth_graticule.cpp for an example).
UTMGraticule "is what it is" .. it was built to a certain requirement and that's all it does. You can look into the MGRSGraticule, which supercedes the UTMGraticule, and will subdivide further. The graticules.earth example shows an example of this.