我在谷歌地球插件的表面绘制了几个多边形。我从他们那里生成了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
现在如何计算范围和海拔高度?
答案 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));
}