Buenas paput.
Lo primero de todo, ¿sabes que estás usando el v2 de API de gmaps en lugar del v3?. No se si es un requisito del proyecto, pero vamos, si llegas a tiempo, tal vez te convenga saltar a la última versión.
Por otro lado:
paput Escribió:
Map.setCenter(new GLatLng(0,0),2);
Aquí me aparece medio mundo y si acerco el zoom puedo ver la ruta
Normal, te aparece medio mundo por que le has ordenado al mapa que se centre en las coordenadas 0 de latitud, 0 de longitud y con un zoom de 2, que corresponde a medio mundo. Si en lugar de un 2 pones un 1 verás el mundo entero... Y para ver un zoom mas cercano deberás aumentar el valor hasta un máximo de...¿16?. ¿Lo ves en tu código?.
Proceso necesario en el API de la versión 2. El truco consiste en que una vez cargues el layer, ejecutes las funciones necesarias para obtener un centro y un zoom sobre las que revisualizar tu mapa.
paput Escribió:
El problema es que no sé como conseguir las coordenas de la ruta kml para que ya me salga la ruta.
Editando el archivo con cualquier editor de texto y buscando la ristra de coordenadas entre las etiquetas <coordinates>...</coordinates> . Leete la estructura del
linestring o el elemento que uses en tus archivos (si quieres sube un ejemplo representativo y lo comprobamos).
POSIBLES SOLUCIONES
Supongamos que quieres usar Javascript:
API v2: Una vez (y como pones en tu código) has cargado el objeto GeoXml puedes recurrir a los métodos
GetDefaultCenter(), o
GetdefaultBounds. Que te devolverán los parámetros que necesites para centrar la vista del mapa.
API v3: No puede ser mas simple. Cargas el kmlLayer y entre los parámetros de
KmlLayerOptions estableces preserveViewport=false
Supongamos que quieres usar el propio archivo kml:
De modo manual:editas y consultas las coordenadas en el kml para completar el final del archivo con un <Look at> las coordenadas y el zoom que decidas<Look at> (haz probatinas con distintos valores).
Automatizado: No he encontrado ningún modo... Así que supongo que no te quedará otra que inventarte alguna función que lea el kml (con SimpleXMLElement si usas PHP) y por ejemplo saque la media aritmética de todas las coordenadas para determinar un centro, y calcule las coordenadas extremas o el "bound" para (según sean las dimensiones de tu div) determinar un nivel de zoom. Claro que antes de acabar de leer esta parrafada ya habrás abandonado la idea
Sinceramente te diría que por este y otros problemas te conviene usar el
APIv3, este no será el único caso en el que este API te facilite el trabajo respecto al APIv2. Pero yo no puedo ayudarte mas hasta que no decidas que camino quieres seguir.
Ya nos cuentas.