计算Google地球KML LookAt元素的范围和海拔高度以适合所有要素(多边形)

时间:2011-03-30 19:33:00

标签: kml google-earth-plugin

我在谷歌地球插件的表面绘制了几个多边形。我从他们那里生成了KML。

问题是我如何计算LookAt的参数,以便视图包含桌面Google Earth中打开时的所有多边形? 对于lat和lon来说,它非常简单 - 只需计算边界框的中心,但是高度和范围参数呢?

例如,我们有两个多边形:

1:
    40.724536 -74.001914
    40.724102 -74.001091
    40.723003 -74.002067
    40.723392 -74.002891
2:
    40.723186 -74.003112
    40.722843 -74.002311
    40.721977 -74.003036
    40.722320 -74.003738

然后lon和lat将是 LON =(40.724536 + 40.721977)/2=40.7232565
LAT = - (74.001091 + 74.003738)/2=-74.0024145

现在如何计算范围和海拔高度?

1 个答案:

答案 0 :(得分:2)

看看Google Earth API Utility Library。它增强了Earth API的功能,提供了有用的帮助方法,可以为您包含常用的任务。

它包含一个createBoundsView() method,它将为您构建一个LookAt对象,该对象配置为适合视口中的给定边界框。我想你到底需要什么。 e.g。

function flyToBox(max_x, max_y, min_x, min_y) {
  var bounds = new geo.Bounds([min_y, min_x], [max_y, max_x]);
  var options = {aspectRatio : $('#map3d').width() / $('#map3d').height(), scaleRange : 2};
  ge.getView().setAbstractView(gex.view.createBoundsView(bounds, options));
}