谷歌地球 确定缩放级别的边界框

7
我有一个使用Google Earth的Windows Forms应用程序,用户可以在地图上绘制一个多边形作为地理围栏。
我想做的是,通过点击按钮将视图缩放到多边形,使其在屏幕上完美显示。类似于缩放适合功能。
查找多边形中心并将Google Earth相机设置为该纬度/经度很容易。
我需要的是一个算法,它接受纬度\经度、屏幕高度\宽度的边界框,并确定设置相机的海拔高度。
是否有人有这个算法或知道哪里可以找到?
谢谢!
1个回答

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

请参见方法createBoundsViewsetToBoundsView,特别是flyToObject

例如,其中geGEPlugin对象,polygon是一个KmlPolygon

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

2
这里有几个问题。首先,要找到弦长的一半,应该使用 var dist = r * Math.sin(d / 2),因为半径是相关三角形的斜边(而不是邻边)。其次,你用作中心的平均纬度/经度在许多情况下都不正确(例如,在跨越“超过”半球的数值线方面)。 - natevw
说实话,我从来没有真正使用过它,它来自这里:https://groups.google.com/forum/?fromgroups#!topic/google-earth-browser-plugin/mGBMtHUU1FM - 我现在实际上建议使用earth-api-utility-library [http://code.google.com/p/earth-api-utility-library/wiki/GEarthExtensionsViewReference]。 - Fraser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接