KML - sigcorporativo-ja/Mapea4 GitHub Wiki

KML (Keyhole Markup Language)

Las capas KML pueden ser provistas desde urls, ya sean ficheros pregenerados alojados en la web, o servicios web que generan los datos al vuelo.

Hay varias formas de añadir capas KML en Mapea:

1.- En el constructor del mapa:

mapajs = M.map({
	      container:"map",
          layers: ["KML*Arboleda*https://mapea4-sigc.juntadeandalucia.es/files/kml/arbda_sing_se.kml*true"]
	     });

2.- Mediante los métodos addKML/addLayers:

//modo objeto 
mapajs.addKML(new M.layer.KML({
                url: "https://mapea4-sigc.juntadeandalucia.es/files/kml/arbda_sing_se.kml",
                name: "Arboleda",
                extract: true
              }));
//modo cadena
mapajs.addKML("KML*capaKML*http://mapea-sigc.juntadeandalucia.es/sepim_server/api/datos/kml/1273/item/329*true");

Los parametros indicados corresponden a:

  • url: url del fichero o servicio.
  • name: nombre de la capa que aparecerá en la leyenda. Debe ser único.
  • extract: opcional - (true|false) indica si debe mostrar el popup de información al pinchar sobre un elemento.
  • label: (v5.1+) opcional - (true|false) activar o no etiquetado.

Se puede ver un ejemplo funcional en jsFiddle - Mapea4 KML

Los métodos de mapa getKML(layer) y removeKML(layer) permiten gestionar las capas KML existentes.

Simbologia

Algunas indicaciones respecto a la simbología de los KML:

  • Si la capa es puntual y dispone de simbología que usa imágenes externas, en el mapa se mostrarán las imágenes con su tamaño real. Puede reducirse o ampliarse definiendo un 'scale' en su estilo asociado.
  • Si las imágenes externas de los iconos no están alojadas en servidores que permitan CORS, pueden dar problemas y no dibujarse. En ese caso, es mejor definir la imagen con su base64 dentro del KML en vez de por su url. Por ejemplo:
<!-- En vez de usar su url -->
<Style id="Style1">
  <IconStyle>
     <Icon>
       <href>https://www.dominio.com/icono.png</href>
     </Icon>
  </IconStyle>
...
</Style>
<!-- Usamos su base64 -->
<Style id="Style1">
  <IconStyle>
     <Icon>
       <href>data:image/png;base64,iVBOR...</href>
     </Icon>
  </IconStyle>
...
</Style>
  • Cada elemento de la capa KML se etiqueta por defecto con el valor de su atributo 'name'. Se puede modificar el estilo del etiquetado mediante un 'LabelStyle'. Para eliminarlo por completo, basta con especificar un scale 0.
<Style id="estilo1">
 <IconStyle>
  <scale>0.5</scale>
  <Icon>
    <href>url_imagen.png</href>
  </Icon>
 </IconStyle>
 <LabelStyle>
   <scale>0</scale>
 </LabelStyle>
</Style>

Ejemplo de estilo que reduce a la mitad el tamaño del icono, y elimina el etiquetado.

doc API: M.layer.KML

⚠️ **GitHub.com Fallback** ⚠️