El formato de archivo KML y su uso en mapas de Google. Introducción
Anuncio
El formato de archivo KML Misc
Los archivos KML se almacenan en formato XML y fueron desarrollados originalmente para el programa de mapeo Keyhole. En 2004, Google compró Keyhole Inc., razón por la cual los servicios de mapas de Google ahora utilizan mucho los archivos KML: Google Maps y Google Earth.
Detalles técnicos sobre los archivos KML
Los archivos KML contienen información que se almacena en formato XML. Esta información incluye imágenes y datos más simples como líneas, polígonos y puntos. Estos archivos se utilizan para almacenar información sobre una ubicación específica en el mapa. El archivo KML permite al usuario no solo marcar la ubicación en el mapa, sino también agregar contenido (formato HTML), textura y vista desde diferentes ángulos. Para abrir archivos KML en Google Maps, todo lo que se necesita es el archivo KML, alojado en la web. Con un enlace de extensión separado en línea búsqueda de Google Maps lo abrirá.
Más información sobre el formato de archivo KML
Extensión de archivo | .kml |
Categoría de archivo | |
Archivo de ejemplo | (2,05 KiB) |
Programas asociados | Blender (Windows, Mac y Linux) Mapeador global de Blue Marble Geographics (Windows) ESRI ArcGIS para escritorio (Windows) Google Earth (Windows, Mac y Linux) Google Maps (web) Merkaartor (Windows, Mac y Linux) Keyhole PRO (Windows y Mac) |
KML es un formato de archivo que se utiliza para mostrar datos geográficos en un navegador de la Tierra como Google Earth. KML utiliza una estructura basada en etiquetas con elementos y atributos anidados y se basa en el estándar XML. Todas las etiquetas distinguen entre mayúsculas y minúsculas y deben aparecer exactamente como se enumeran en la Referencia de KML. La referencia indica qué etiquetas son opcionales. Dentro de un elemento dado, las etiquetas deben aparecer en el orden que se muestra en la Referencia. Si es nuevo en KML, explore este documento y los archivos de muestra adjuntos ( SamplesInEarth) para comenzar a aprender sobre la estructura básica de un archivo KML y las etiquetas más utilizadas. La primera sección describe las funciones que se pueden crear con la interfaz de usuario de Google Earth. Estas características incluyen marcas de posición, descripciones, superposiciones de suelo, rutas y polígonos. La segunda sección describe las funciones que requieren la creación de KML con un editor de texto. Cuando un archivo de texto se guarda con un .kml o .kmz extensión, los navegadores de la Tierra saben cómo mostrarlo. |
Propina: Para ver el "código" KML de una función en Google Earth, simplemente haga clic con el botón derecho en la función en el Visor 3D de Google Earth y seleccione Copiar. Luego pegue el contenido del portapapeles en cualquier editor de texto. La función visual que se muestra en Google Earth se convierte en su equivalente de texto KML. Asegúrese de experimentar con esta función.
Para obtener más información sobre cómo utilizar algunas de las funciones clave de KML, consulte la Guía para desarrolladores.
Tabla de contenido
Documentos KML básicos
El tipo más simple de documentos KML son los que se pueden crear directamente en Google Earth; es decir, no es necesario editar ni crear ningún KML en un editor de texto. Las marcas de posición, las superposiciones de suelo, las rutas y los polígonos se pueden crear directamente. en Google Earth.
Marcas de posición
Una marca de posición es una de las funciones más utilizadas en Google Earth. Marca una posición en la superficie de la Tierra, utilizando una chincheta amarilla como icono. La marca de posición más simple incluye solo una
Por ejemplo, habilite la carpeta "Posicionamiento absoluto: parte superior izquierda" en el archivo de muestras KML y verá una pantalla superpuesta en la parte superior izquierda de la ventana de visualización. Esto fue creado con el siguiente código KML:
El posicionamiento se controla mapeando un punto en la imagen especificado por
Consulte los otros ejemplos en la carpeta para ver cómo es posible obtener otras posiciones fijas y crear imágenes de ese tamaño dinámicamente con el tamaño de la pantalla. (Tenga en cuenta que xunidades y yunits también se puede especificar como "píxeles" para un control de precisión). Para obtener más detalles, consulte la Referencia de KML 2.2.
Vínculos de red
Un enlace de red contiene un elemento con un
los
- Un archivo de imagen utilizado por íconos en estilos de íconos, superposiciones de suelo y superposiciones de pantalla
- Un archivo de modelo utilizado en el
elemento - Un archivo KML o KMZ cargado por un enlace de red
El archivo especificado puede ser un archivo local o un archivo en un servidor remoto. En su forma más simple, los enlaces de red son una forma útil de dividir un archivo KML grande en archivos más pequeños y manejables en la misma computadora.
Hasta ahora, todos nuestros ejemplos han requerido que el código KML se envíe a Google Earth desde la máquina local. Los enlaces de red le brindan el poder de servir contenido desde una ubicación remota y se usan comúnmente para distribuir datos a un gran número de usuarios. De esta manera, si los datos necesitan ser modificados, deben cambiarse solo en la ubicación de origen, y todos los usuarios reciben los datos actualizados automáticamente.
Secuencias de comandos CGI para KML
Además de apuntar a archivos que contienen datos estáticos, un enlace de red "s
Se necesitan dos cosas para entregar KML a través de una red CGI:
Cuando se realiza una llamada desde el cliente (Google Earth) al servidor, el servidor debe (1) devolver un código de respuesta HTTP 200 y (2) establecer el tipo de contenido de la respuesta en text / plain o application / vnd.google -earth.kml + xml.
La respuesta debe ser un archivo KML válido. Para aplicaciones complejas, el manejo adecuado de errores es muy importante.
Propina: Una forma sencilla de manejar los errores es analizar el error del servidor como el texto de un nombre de carpeta. Por ejemplo, puede hacer que el servidor devuelva
Los siguientes ejemplos usan Python, pero son igualmente válidos en cualquier otro lenguaje de programación.
Generando una marca de posición aleatoria
La siguiente secuencia de comandos de Python genera valores enteros aleatorios para latitud y longitud y luego inserta esos valores en el
#! / usr / bin / python import random latitude = random.randrange (-90, 90) longitude = random.randrange (-180, 180) kml = ("\ n ""
A continuación, se muestra un ejemplo de un archivo KML que contiene un enlace de red que carga esta secuencia de comandos de Python:
marca de posición en cada llamada
Consultas de actualización basadas en vistas
Un enlace de red estándar es un enlace unidireccional: los datos fluyen solo desde el servidor a Google Earth. La actualización basada en la vista permite la comunicación bidireccional. Cuando la actualización basada en la vista está activa, Google Earth devuelve las coordenadas de la vista al servidor en un momento específico. Esto puede ser cada norte segundos, minutos u horas, o una vez que haya transcurrido cierto tiempo desde que la vista dejó de moverse. Ver
Las coordenadas se devuelven al servidor por medio de un HTTP GET que agrega las coordenadas de la siguiente manera (esta es la información predeterminada del cuadro delimitador):
OBTENER / ruta / a / servidor / script / consulta? BBOX = HTTP / 1.1
Si la solicitud se realizó mientras el usuario miraba hacia San Francisco, las coordenadas podrían tener el siguiente aspecto:
OBTENER /ruta/al/servidor/script/query?BBOX=-122.497790,37.730385,-122.380087,37.812331 HTTP / 1.1
Esta función se puede utilizar para algunas aplicaciones muy creativas, pero para empezar, a continuación se presenta un ejemplo sencillo.
Seguimiento de un punto directamente bajo su vista
La siguiente secuencia de comandos de Python del lado del servidor analiza el mensaje de retorno enviado por Google Earth y responde con una marca de posición en el centro de la pantalla. Cada vez que se actualiza el enlace de red, se genera una nueva marca de posición.
#! / usr / bin / python import cgi url = cgi.FieldStorage () bbox = url ["BBOX"]. value bbox = bbox.split (",") west = float (bbox) south = float (bbox) east = flotar (bbox) norte = flotar (bbox) center_lng = ((este - oeste) / 2) + oeste center_lat = ((norte - sur) / 2) + sur kml = ("\ n ""
Y aquí está el KML para el enlace de red que carga la secuencia de comandos de Python:
el centro de la pantalla y devolver una marca de posición.
El principio ilustrado en este ejemplo se puede utilizar para algunas aplicaciones muy complejas. Por ejemplo, si tiene una base de datos de información geográfica, puede extraer las coordenadas del visor, realizar una llamada a la base de datos para obtener los datos específicos de la vista y devolverlos a Google Earth como KML.
3 tipos de KML MIME
Al responder a una solicitud de Google Earth (o cualquier navegador de la Tierra), un servidor KML debe seguir un cierto conjunto de reglas para que Google Earth pueda interpretar correctamente sus respuestas.
Si tiene éxito, el servidor debe devolver un código de respuesta HTTP 200 y establecer el tipo de contenido de la respuesta en un tipo MIME adecuado, como se describe aquí.
Google Earth lee archivos KML y KMZ. El tipo MIME para archivos KML es
- application / vnd.google-earth.kml + xml
El tipo MIME para archivos KMZ es
- application / vnd.google-earth.kmz
Para Apache, agregue estas líneas al httpd.conf expediente:
- Aplicación AddType / vnd.google-earth.kml + xml .kml
- Aplicación AddType / vnd.google-earth.kmz .kmz
Consulte la documentación de Microsoft para obtener detalles sobre la configuración de tipos MIME en IIS de Microsoft.
El cuerpo de la respuesta debe contener datos KML válidos, incluida la declaración XML (). Si el servidor devuelve un archivo KML no válido, el enlace de red se detendrá, se desactivará y mostrará un mensaje de error.
El formato KML es una extensión que almacena datos geográficos para funciones en Google Earth. Dicha información incluye marcas de posición en el mapa, un área arbitraria en forma de polígono o líneas, un modelo tridimensional y una imagen de una parte del mapa.
Consideremos aplicaciones que interactúan con este formato.
Google Earth
- Después de comenzar, haga clic en "Abierto" en el menú principal.
- Busque el directorio con el objeto original. En nuestro caso, el archivo contiene información de ubicación. Haga clic en él y haga clic en "Abierto".
La interfaz del programa con la indicación de la ubicación en forma de etiqueta.
Computadora portátil
El Bloc de notas es una aplicación de Windows integrada para crear documentos de texto... También puede actuar como editor de código para ciertos formatos.
- Ejecute este software. Para ver el archivo, seleccione "Abierto" en el menú.
- Nosotros elegimos "Todos los archivos" en el campo apropiado. Habiendo seleccionado el objeto deseado, haga clic en "Abierto".
Visualización del contenido del archivo en el Bloc de notas.
Podemos decir que la extensión KML tiene poca distribución, y se usa exclusivamente en Google Earth, y ver un archivo de este tipo a través del Bloc de notas no será de utilidad para nadie.