Se me ocurre que puedes tener problemas de compatibilidades. Revisa este documento pues a mí ya me ocurrió algo parecido en su momento.
Posibles causas
-Cito textualmente: "Existe un límite en el número de capas KML que se pueden mostrar en un único mapa de Google Maps. Si superas este límite, no se mostrará ninguna capa. El límite se basa en la longitud total de todas las URL transmitidas a la clase KMLLayer y, por tanto, variará según la aplicación; de media, debes poder cargar entre 10 y 20 capas sin superar el límite"
- Número máximo de enlaces de red = 10
-Incorrecto funcionamiento del método "addoverlay"
-¿Elementos XML en el KMZ?
Ya por último, te linko un listado de los elementos KML compatibles con Gmaps.
Sin el código fuente no puedo determinar si tienes un error de sintaxis o si aún arrastras funcionalidad de la versión antigua de gmaps. Pero te recomiendo la lectura del siguiente artículo. Vete directamente al final donde tienes una captura de un infowindows con formulario e inmediatamente arriba el código donde poder "copipastear".
Buenas manton.
No acabo de entender bien que es lo que necesitas. Así que te voy realizando algunas preguntas:
1.- Tus procedimientos, ¿son con lisp o con vba?.
2.- Entiendo que tu procedimiento lo que hace es editar un archivo de texto plano que luego cargas en Google Earth. ¿O trabajas con Gmaps?.
3.-¿A que te refieres con propiedades del menú contextual?. ¿A darle al botón derecho obtener el desplegable y seleccionar "propiedades"?. ¿Puedes adjuntarnos una captura de pantalla?
4.-Ya por último. ¿Entiendo que tu flujo de trabajo es: crear el kml con el procedimiento, luego abrirlo con GEarth y por último, una vez realizados los trabajos dichos inspectores deben ir marcando las zonas inspeccionadas con otro color?.
Buenas robierzo. La verdad es que no estoy usando Google Earth para ver tus kml; estoy usando la aplicación "ver en google maps" que tiene este foro. Y probablemente como en verdad "rula" bajo gmaps el comportamiento sea distinto.
Tendremos que tener esto bien presente para evitar futuros malentendidops, je, je. En el adjunto Muestra.jpg puedes ver como se ve en Gmaps al pulsar sobre la acera de la redonda de entrada al polígono.
Respecto a estar en el trabajo. Un buen jefe sabe que lo que tiene que estar a tiempo es el trabajo bien hecho.
Al tema.
Te cuento mis averiguaciones hechas en el periodo post-comida:
1.- Vía código kml no podemos hacer nada al respecto pues el tag no tiene "mapeado" ningún atributo adicional (por lo tanto ninguno que nos sirva a nosotros).
2.- Una solución es trabajando con el API de Google Earth. Habría que porgramar un "escuchador de eventos (event listener)", darle instrucciones a dicho "escuchador" y ya por último meter el código. Resumiendo, mucha historia y no compensa.
3.- trasteando la documentación principio de nuestro post descubrí el TAG <StyleMap> que parece pensado para cambiar el estilo de una entidad cuando pasas... Leer más ...
...rel="stylesheet">
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
function initialize() {
var chicago = new google.maps.LatLng(41.875696,-87.624207);
var mapOptions = {
zoom: 11,
center: chicago,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
var ctaLayer = new google.maps.KmlLayer('http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml');
ctaLayer.setMap(map);
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas"></div>
</body>
</html>
Hola a todos de nuevo. Esta vez les quería preguntar sobre los estilos de CSS. Como ya puse en comentarios anteriores, yo tengo un mapa de google, y cada vez que hago click saltan dos eventos, uno me dibuja una marca y el otro me abre la ventana de esta marca. El tema es que tengo la página decorada con un estilo de CSS y al abrir la ventana de la marca se abre con los estilos descritos en el CSS, que es otro archivo a parte. Mi pregunta es ¿Hay alguna manera de anular esto solo para esa parte de mi página web?
No sé si será la pregunta básica pero en CSS estoy un poco pez y como es usar mi módulo los estilos que usa la aplicación a la que pertenece, yo no los he generado.
Mi opinión serdj es que no creo que se pueda, la razón es básicamente que n o existe en el manual de referencia del API v3.9 ningún objeto relacionado con los edificios. Entiendo que te refieres a los modelos tridimensionales de los edificios, ¿cierto?.
De cualquier modo, fijate que cuando le pides a gmaps que te calcule una ruta desde o hasta una localización seleccionada 'clickando en el mapa' Google calcula la distancia siempre a la calle o carretera mas cercana (donde tenga google topología o una red habilitada).
No se si me he explicado bien serdj, así que ante cualquier duda o aclaración ya sabes... pregunta.
Hola, estoy haciendo un programa en el que voy creando un camino y se establecen unas marcas al pinchar. Quisiera saber si es posible controlar
si se pinchan en un edificio, para que de una advertencia de que por ahí no se puede pasar.
Muchas gracias.
1.- Así es trabajo con el APi de GMaps.
2.- Efectivamente tengo un evento que me captura las pulsaciones en el mapa y me dibuja una marca. Al pulsar el marker, se me abre la ventana asociada a este marker. Este es el código:
function saveData(mark){
var indicaciones;
// alert("SI");
mark.closeInfoWindow();
alert(mark);
indicaciones.push(mark);
}
function principal{
//...eventos variables y demás cosas
var html = "Derecha: <input type='radio' id= 'dirDer' value='Derecha'/><br>
Izquierda:<input type='radio' id= 'dirIzq' value='Izquierda'/> <br>
Otra indicación: <input type='text' id='extra' name = 'extra'/> <br>
<input type='button' value='Guardar' onclick='saveData(marker)'/>"
Al pulsar el botón yo quiero coger en la función savedata que es lo que marcó el usuario. Y si escribió algo.
He estado probando con el método que me has dicho, pero tampoco sé usarlo... Leer más ...
Buenas serdj, ponme un poco al día de tu metodología:
1.- ¿Entiendo que trabajas con el API de gmaps?, ¿o el de Gearth?.
2.-Suponiendo que es gmaps, imagino que tienes preparada la respuesta del evento 'on click' para que:
2.1.- Capture las coordenadas y entonces por código creas el marker y su infowindow (new google.maps.Marker/InfoWindow), y en el infowindow has metido el código Html.
2.2.- Quieres (¿mediante javascript?) obtener los datos del formulario (supongo de un Input type="Text").
Si es así, creo que tu opción es utilizar el método Getelementbyid, usa este ejemplo.
Pero hay una serie de cosas que me escaman y que te pregunto a ver si las aclaramos:
1.- ¿Debo entender que en tu archivo solo había tres puntos observados?.
2.- El primer par de coordenadas, no tengo ni idea de a que sistema de referencia puede pertenecer. ¿Y tú?.
3.- ¿Tus observaciones están cerca del ecuador?. Vendría bien saber por donde quedan, ¿puedes localizar alguna en google earth mediante un kml?.
4.- El segundo par de coordenadas podrían ser geodésicas, y por lo tanto buenas para gmaps y gearth; pero sería extrano que se representaran en minutos en lugar de grados.
5.-¿Puedes elegir el tipo de coordenadas en tu receptor GPS?, si es que si asegurate de configurarlo con WGS84 o con UTM y vuelve a obtener el informe.
Reconozco que me he lllevado una sorpresa al ver que la clase kmlLayer del APIv3 no carga archivos gpx. A fin de cuentas ambos formatos vienen del XML. ¿Has encontrado algún modo de cargar XML, GML y demás en el nuevo API?.
Volviendo a la versión dos: He encontrado este artículo que aborda la problemática de leer el formato xml y usar sus coordenadas para establecer placemarks mediante el API de gmaps. Creo que podrás abordarlo.
UN AVISO: podría ocurrir que el formato GPX no cumpla con todos los estándares XML. Y dado que estás usando una funcionalidad orientada al formato XML, pues tal vez surjan problemas.
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>... Leer más ...
No me suena haber encontrado en ningún momento un parámetro que me permita activar o desactivar esa capa, y creo que simplemente no lo han habilitado. No obstante, te comento que al menos en mi navegador tengo visibles las C.C.A.A. pero solo a partir de cierto nivel de detalle (solo si te acercas lo suficiente).
Respecto a los archivos kml y kmz, creo que vas un poco desorientada (tranquila, es normal ). Estos son simplemente archivos que contienen información gráfica (o las instrucciones para que gmaps muestre esta información gráficamente). Si consigues hacerte con algún archivo en formato kml o kmz (prueba los centros de descarga del Catastro y del CNIG, pero me suena que en este foro alguien compartió algo parecido) tal vez puedas utilizarlo en tu proyecto. Consulta aquí:
Una vez sepas calcular la distancia en ruta entre dos puntos, necesitas aprender a programar un evento de escucha que al detectar un click en la pantalla te devuelva las coordenadas. Aquí uno de los miles de ejemplos: labs.reweb.com.ar/geoDigitalizador/
Para calcular la distancia mas corta, y dependiendo de como te quieras complicar la vida con la trigonometría esférica: www.movable-type.co.uk/ ...tlong.html
Tienes todo tipo de scripts ya completos. A ti te vendrá bien la aproximación de Haversine en javascript.
Buenas jakuu, como bien dice Google_Master hay problemas de compatibilidades entre gmaps y kml. Consultalo aquí. No obstante, en este caso no creo que sea un problema de la etiqueta <name>.
Veamos, el kml que en verdad carga tu archivo es malaga.kml, no el que has adjuntado. El adjuntado tiene una función en php bloginfo('NODO'). ¿Que hace?, por que lo poco que he leido parece indicar que te devuelve el nombre del blog, no el value de la etiqueta name. Pero bueno, esta comentado y no se ejecuta, ¿verdad?.
Aparte de todo esto, a mí la impresión personal que me da es que mientras Google earth si que interpreta bien la sentencia "This is $[name]". Tu código javascript se limita a carga literalmente el código kml en el mapa (es decir que no interpreta kml, lo plasma literalmente).
A ver si te he entendido: te vendría bien disponer de los demás controles, pero el de tipo de mapa te sobra. Es decir que disableDefaultUI no te vale. De todos modos que sepas que con esta opción sigues disponiendo del Pan y del wheelscroll.
No es la solución idonea, pero si no encuentras el modo de eliminar el MapTypeControl el puedes probar esto:
Alponerlo en modo desplegable reducer el área ocupada
Si te manejas con php no será demasiado engorroso trabajar con el API de Gmaps. En la función initialize() sustituye los valores Lat, Long por constantes, y a esas constantes les asignas el retorno de una query hacia mysql.
Las solicitudes vía URL son un buen método para disponer de googlemaps en tu web sin necesidad de tener conocimientos de programación.
El problema es que al ser un método "simplificado", le faltan funcionalidades (o al menos no he encontrado el modo de conseguir lo que tú pides). No obstante se me ocurren dos modos:
1.- Puedes usar el API de Google Static Maps que convertirá tu mapa en una imagen estática (es decir que pierdes toda la funcionalidad) y que funciona tal que así:
<img src="http://maps.google.com/staticmap?center="TU LATITUD","TU LONGITUD"&zoom="TU ZOOM"&size="TU TAMAÑO"&maptype="ROADMAP/SATELLITE/TERRAIN/HYBRID"\
&key="DEBERAS SOLICITAR UN APIKEY GRATUITO PARA TU DOMINIO"/>
Efectivamente, la función se debería ejecutar solo cuando se compruebe que la altura es menor que una determinada . ¿Conoces las estructuras condicionales IF THEN...ELSE?
Le he echado un ojo al api de Google earth, y lo primero que he visto es que es muy pobre, la verdad es que está muy limitada comparada con el API de Gmaps. Y parece que hay un modo que debería funcionar, pero que es largo y complicado:
1.-El método "GEView.getViewportGlobeBounds()" te va a devolver un objeto "KmlLatLonBox". Ver aquí.
2.-La interfaz KmlLatLonBox dispone de las funciones KmlLatLonBox.getNorth() y KmlLatLonBox.getSouth() que te dan la latitud superior e inferior de la pantalla en la vista del momento (en grados decimales). Ver aquí.
3.-Las restas (en su valor absoluto para que el algoritmo funcione bien en el hemisferio sur), y si el valor es menor que el que tú determines, se activa el enderezamiento.
Para mi un error muy grave por parte de Google ya que ellos deberían de saber mejor que nadie que la tierra no es plana :-)
bastante, pero me da la impresión que esto ocurre por que muchas funciones traen la herencia de gmaps, (la cual por utilizar la proyección plana de Mercator funciona "visualmente" bien con trigonometría plana)
Morta Escribió:
Por cierto que en esa página hay un enlace superinteresante donde desarrollan la fórmula para 9 lenguajeswww.codecodex.com/wiki...on_a_Globe Seguro que a mas de uno le resulta útil.
Y tanto. Lástima que parta del supuesto de una tierra esférica.
Cada aportación tuya enriquece este foro, y siempre, después de hablar contigo aprendo algo. Así que muchas gracias a tí.
Cuando no carga el mapa suele ser indicativo (como tu bien has averiguado) de la imposibilidad de inicializar el mapa por un formato incorrecto de las coordenadas.
Trabajando con el API de Gmaps no te queda otra que trabajar con el formato correcto de WGS84 (cosa, por cierto que es lo recomendable).
Te recomiendo que para evitarte futuras sorpresas crees funciones tanto para adaptar tus datos, como para comprobar el correcto formato de los datos introducidos.