3

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

问题是如何计算 LookAt 的参数,以便在桌面 Google 地球中打开时视图包括所有多边形?对于 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

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

4

1 回答 1

3

查看Google 地球 API 实用程序库。它增强了 Earth API 的功能,提供了有用的帮助方法,这些方法为您完成了常用的任务。

它包括一个createBoundsView() 方法,该方法将为您构建一个对象,该LookAt对象配置为适合视口内的给定边界框。完全符合我的想法。例如

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));
}
于 2011-08-20T11:24:10.027 回答