Google Earth Determining zoom level from bounding box
I got a Windows Forms app making use of Google Earth where users can draw a polygon on the map which is used as a geofence.
What I'd like to do is to be able to zoom to the polygon so that it fits nicely on screen with a click of a button. A sort of zoom to fit function.
Finding the centre of the polygon and setting the Google Earth camera to that lat/long is e开发者_JAVA百科asy.
What I need is an algorithm that takes a bounding box of lats \ longs, screen height \ width and then determines the altitude to set the camera.
Does anyone have this algorithm or know where one can be found?
Thanks!!
To "zoom to the polygon" or any other KmlObject
it is probably easiest to use the earth-api-utility-library.
See the methods createBoundsView, setToBoundsView and especially flyToObject
For example, where ge
is the GEPlugin
object and polygon
is a KmlPolygon
.
var gex = new GEarthExtensions(ge);
gex.util.flyToObject(polygon, { boundsFallback: true, aspectRatio: 1 } );
精彩评论