Hola Polifemo
Creo que ya lo he resuelto basándome en este post
bbs.keyhole.com/ ...d=1#import
En él, el autor facilita un código en PHP que utiliza en un página suya que, por cierto, no funciona
dev.bt23.org/keyhole/circlegen/
Solo he tenido que convertirlo a javascript. Creo que está bien y funciona correctamente en cualquier coordenada
Un saludo
Generar un circulo de radio en km en Google Earth
Google.load("earth", "1");
Var ge = null;
Function init() {
google.earth.createInstance("map3d", initCB, failureCB);
}
Function initCB(instance) {
Ge = instance;
Ge.getWindow().setVisibility(true);
Ge.getOptions().setStatusBarVisibility(true);
Ge.getNavigationControl().setVisibility(ge.VISIBILITY_SHOW);
// Creamos la vista para que salga centrado
Var lookAt = ge.createLookAt('');
LookAt.setLatitude(42.32331619631114);
LookAt.setLongitude(2.598912324753657);
LookAt.setRange(400000.0);
Ge.getView().setAbstractView(lookAt);
CreateMultiGeometry();
}
Function failureCB(object) {
alert('Error al generar el circulo');
}
//coordenadas alrededor de las que se dibujará el circulo
Var lat1="42.32331619631114";
Var lon1="2.598912324753657";
Var radio="25000";//radio del circulo en metros
Var pi = Math.PI;
//convertimos los grados a radianes
Lat1 = lat1 * pi / 180;
Lon1 = lon1 * pi / 180;
//convertimos el radio segun el elipsoide de referencia WGS 84
en.wikipedia.org/ ..._the_Earth
Var d_radio = radio/6378137;
Function createMultiGeometry() {
Function dibujar_circulo() {
Var center = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);
Var ring = ge.createLinearRing('');
//genera las coordenadas
Var radial;
Var lat_rad;
Var dlon_rad;
Var lon_rad;
for (var i = 0; i