Google Earth从边界框确定缩放级别

Dom*_*nic 7 google-earth geospatial google-earth-plugin computational-geometry

我有一个使用Google Earth的Windows窗体应用程序,用户可以在地图上绘制多边形,用作地理围栏.

我想做的是能够缩放到多边形,只需点击一下按钮就可以很好地适应屏幕.一种缩放以适应功能.

找到多边形的中心并将Google Earth相机设置为该纬度/长度很容易.

我需要的是一个算法,它采用一个lats\longs,屏幕高度\宽度的边界框,然后确定设置相机的高度.

有没有人有这个算法或知道哪里可以找到?

谢谢!!

Fra*_*ser 7

要"缩放到多边形"或任何其他KmlObject,最简单的方法是使用earth-api-utility-library.

请参阅方法createBoundsView,setToBoundsView,尤其是flyToObject

例如,在geGEPlugin对象和polygon是一个KmlPolygon.

var gex = new GEarthExtensions(ge);
gex.util.flyToObject(polygon, { boundsFallback: true, aspectRatio: 1 } );
Run Code Online (Sandbox Code Playgroud)

  • 这有几个问题.首先,为了找到弦长的一半,你应该使用`var dist = r*Math.sin(d/2)`,因为半径是相关三角形的斜边(不是相邻边).其次,在许多情况下,您用作中心的平均纬度/经度将不正确(例如,跨越"超过"半球数字的行). (2认同)