In the prerelease versions of the Unity plugin, I had come up with a way to place objects at ground level. In short, raycasting from a point above the lat/lon I want, and setting the object to the hit position.
I've slightly adapted our code to work in v1.0. I can now use the EngineToGeometry() function, and a reverse I created, plus the built in mesh colliders, etc.
However, I'm having an issue I didn't have before. Our application has objects that may be added to the map or moved at any time, plus objects that are procedurally created, which get recreated when a different LOD is loaded on the map.
The main problem I'm seeing is this: while zooming in/out of the map (using the CameraController from the samples project), sometimes objects appear to move to a very different part of the map. I believe the issue stems from raycasting (placing an object) while the world tiles are updating. Perhaps the raycast hits somewhere, and I convert that Enginelocation to a Geometry location, but then the geometry moves and my object ends up at the wrong spot. I've tried moving my raycast to different times in the Unity loop (Update, FixedUpdate, LateUpdate, WaitForEndOfFrame, etc), but none of these changes has solved the problem.
Any thoughts on how to workaround this problem? Or a better approach to getting the ground position of a lat/lon altogether?
Thanks