GeoJson dataset set z value but seems no effect

Here is my testing code on sandcastle

I try to put the marker on the top of Buildings.
I set
viewer.scene.globe.depthTestAgainstTerrain = false;
I use clampToHeightMostDetailed to get the z value, then put it back by entity.position=cart.
But the marker is not stick on the top of building. It is shifted when zoom in. And move to side of building.
I tried to add more offset on z value but the display is no change.
Is any way can I do this.

I tested the same dataset by kml file format. The performace is perfect