7

Obtuve una aplicación de Windows Forms que utiliza Google Earth donde los usuarios pueden dibujar un polígono en el mapa que se utiliza como una geocerca.Google Earth Determinación del nivel de zoom desde el cuadro delimitador

Lo que me gustaría hacer es poder hacer un acercamiento al polígono para que se ajuste bien en la pantalla con un clic de un botón. Una especie de función de zoom para ajustar.

Encontrar el centro del polígono y configurar la cámara de Google Earth en esa latitud/longitud es fácil.

Lo que necesito es un algoritmo que tome un cuadro delimitador de lats \ longs, height/width de la pantalla y luego determine la altitud para configurar la cámara.

¿Alguien tiene este algoritmo o sabe dónde se puede encontrar uno?

Gracias!

Respuesta

7

Para "acercar al polígono" o cualquier otro KmlObject es probablemente el más fácil de usar el earth-api-utility-library.

Ver los métodos createBoundsView, setToBoundsView y especialmente flyToObject

Por ejemplo, cuando ge es el objeto GEPlugin y polygon es una KmlPolygon.

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

Hay un par de problemas con esto. En primer lugar, para encontrar la mitad de la longitud de la cuerda, debe usar 'var dist = r * Math.sin (d/2)' ya que el radio es la hipotenusa (no el lado adyacente) del triángulo correspondiente. En segundo lugar, la latitud/longitud promedio que utiliza como centro no será correcta en muchos casos (por ejemplo, en "más que" un número del hemisferio en línea). – natevw

+0

Para ser justos, nunca lo he usado, es desde aquí: https://groups.google.com/forum/?fromgroups#!topic/google-earth-browser-plugin/mGBMtHUU1FM - De hecho, ahora sugeriría usar el earth-api-utility-library [http://code.google.com/p/earth-api-utility-library/wiki/GEarthExtensionsViewReference – Fraser

Cuestiones relacionadas