Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Observatorio-GC/Nodos/llms.txt

Use this file to discover all available pages before exploring further.

Icon factory functions are pointToLayer callbacks for L.geoJson(). They accept (feature, latlng) and return a L.marker() configured with the appropriate L.Icon instance. All icons are instantiated from one of two base prototypes — iconoComun (standard pin size) or iconoParaTren (smaller square icon) — both defined via L.Icon.extend() in js/iconos.js.

Base icon configuration

The two prototypes set shared options so individual icon instances only need to supply their iconUrl.
js/iconos.js
var iconoComun = L.Icon.extend({
    options: {
        shadowUrl: 'img/marker-shadow.png',
        iconSize: [25, 41],
        shadowSize: [41, 41],
        iconAnchor: [12, 41],
        popupAnchor: [1, -34]
    }
});

var iconoParaTren = L.Icon.extend({
    options: {
        shadowUrl: 'img/marker-shadow.png',
        iconSize: [20, 20],
        shadowSize: [41, 41],
        iconAnchor: [12, 41],
        popupAnchor: [1, -34]
    }
});
iconoComun uses the standard Leaflet pin shape at 25 × 41 px. iconoParaTren uses a smaller 20 × 20 px square — suitable for dense transit stop clusters along the metrotranvía line.
Individual icon instances are declared at module level so they are created once and reused by every factory call:
js/iconos.js
iconoAsistencia  = new iconoComun({ iconUrl: 'img/Asistencia.png'  });
iconoEnseñanza   = new iconoComun({ iconUrl: 'img/Enseñanza.png'   });
iconoComercio    = new iconoComun({ iconUrl: 'img/Comercio.png'    });
iconoCultura     = new iconoComun({ iconUrl: 'img/Cultura.png'     });
iconoCulto       = new iconoComun({ iconUrl: 'img/Culto.png'       });
iconoEsparcimiento = new iconoComun({ iconUrl: 'img/Esparcimiento.png' });
iconoOficina     = new iconoComun({ iconUrl: 'img/Oficina.png'     });
iconoServicios   = new iconoComun({ iconUrl: 'img/Servicios.png'   });
iconoTren        = new iconoParaTren({ iconUrl: 'img/tren.png'     });
// … and many more colour and speciality icons

Factory function reference

Each factory function follows the same one-liner pattern and is also paired with a pre-built options object (e.g. asignarIconoComercio) that can be spread directly into L.geoJson() options.
Factory FunctionIcon FileIcon SizeTypical Use
crearIconoAsistencia(feature, latlng)img/Asistencia.png25 × 41Centros de salud, clínicas, hospitales
crearIconoEnseñanza(feature, latlng)img/Enseñanza.png25 × 41Escuelas, jardines, universidades
crearIconoComercio(feature, latlng)img/Comercio.png25 × 41Farmacias, bares, restaurantes, supermercados
crearIconoCultura(feature, latlng)img/Cultura.png25 × 41Museos, teatros, bibliotecas
crearIconoCulto(feature, latlng)img/Culto.png25 × 41Templos, iglesias
crearIconoEsparcimiento(feature, latlng)img/Esparcimiento.png25 × 41Polideportivos, uniones vecinales, pistas salud
crearIconoOficina(feature, latlng)img/Oficina.png25 × 41Dependencias municipales, bancos
crearIconoServicios(feature, latlng)img/Servicios.png25 × 41Cajeros, WiFi, puntos verdes, solmáforos
crearIconoPilas(feature, latlng)img/pilas_r2.png25 × 41Puntos de recepción de pilas
crearIconoPanel(feature, latlng)img/paneles_3.png25 × 41Paneles solares
crearIconoTren(feature, latlng)img/tren.png20 × 20Paradas metrotranvía
crearIconoVerde(feature, latlng)img/marker-icon-2x-green.png25 × 41Planta recicladora, spa
crearIconoRojo(feature, latlng)img/marker-icon-2x-red.png25 × 41Bodegas, puestos
crearIconoAzul(feature, latlng)img/marker-icon-2x-blue.png25 × 41Aventura / turismo aventura
crearIconoAmarillo(feature, latlng)img/marker-icon-2x-yellow.png25 × 41Hospedajes
crearIconoNaranja(feature, latlng)img/marker-icon-2x-orange.png25 × 41Residencias adultos mayores, diques
crearIconoDorado(feature, latlng)img/marker-icon-2x-gold.png25 × 41Bodegas premium, patrimonio
crearIconoNegro(feature, latlng)img/marker-icon-2x-black.png25 × 41Usos misceláneos / sin categoría
crearIconoGris(feature, latlng)img/marker-icon-2x-grey.png25 × 41Infraestructura inactiva
crearIconoVioleta(feature, latlng)img/marker-icon-2x-violet.png25 × 41Usos misceláneos
crearIconoEscul(feature, latlng)img/escultura_3.png25 × 41Esculturas urbanas
crearIconositios(feature, latlng)img/sitios.png25 × 41Sitios y conjuntos edilicios
crearIconoedi(feature, latlng)img/edificios.png25 × 41Edificios patrimoniales
crearIconoMast(feature, latlng)img/mastil_r2.png25 × 41Mástiles
crearIconoMastp(feature, latlng)img/banderita_r2.png25 × 41Mástiles públicos
crearIconoPersi(feature, latlng)img/persianas_r2.png25 × 41Persianas (shutter art)
crearIconoAntena(feature, latlng)img/ante_r2.png25 × 41Antenas de telecomunicaciones
crearIconoBiblio(feature, latlng)img/biblio_r2.png25 × 41Bibliotecas
crearIconoCentrosalud(feature, latlng)img/centrosalud_r2.png25 × 41Centros de salud municipales
crearIconoClinicaprivada(feature, latlng)img/clinicaprivada_r2.png25 × 41Clínicas privadas
crearIconoDependmuni(feature, latlng)img/dependmuni_r2.png25 × 41Dependencias municipales
crearIconoEstabeducat(feature, latlng)img/estabeducat_r2.png25 × 41Establecimientos educativos
crearIconoFarmacias(feature, latlng)img/farmacias_r2.png25 × 41Farmacias
crearIconoHospitales(feature, latlng)img/hospitales2.png25 × 41Hospitales
crearIconoSeguridad(feature, latlng)img/institucseguridad_r2.png25 × 41Instituciones de seguridad
crearIconoJardmatern(feature, latlng)img/jardmatern_r2.png25 × 41Jardines maternales
crearIconoPoli(feature, latlng)img/poli_r2.png25 × 41Polideportivos
crearIconoUnivec(feature, latlng)img/univec_r2.png25 × 41Uniones vecinales
crearIconoSTV(feature, latlng)img/pegman_3.png25 × 41Street View / puntos de interés
crearIconoVerde2(feature, latlng)img/verde2_r2.png25 × 41Espacios verdes secundarios
crearIconoSema_r2(feature, latlng)img/sema_r2.png25 × 41Semáforos / señalética
crearIconoWifi(feature, latlng)img/wIfI_r2.png25 × 41Puntos de acceso WiFi público

Factory function pattern

Every factory follows the same minimal pattern — look up the pre-instantiated icon constant and wrap it in an L.marker():
js/iconos.js
function crearIconoComercio(feature, latlng) {
    return L.marker(latlng, { icon: iconoComercio });
}
var asignarIconoComercio = {
    pointToLayer: crearIconoComercio
};
Each factory is also paired with a convenience options object (e.g. asignarIconoComercio) containing only { pointToLayer: ... }. You can spread or pass this object directly to L.geoJson():
// Using the factory function directly:
var centrosdesalud = L.geoJson(centrosdesaludData, {
    pointToLayer: crearIconoAsistencia,
    onEachFeature: agregarPopupSalud
});

// Using the pre-built options object:
var farmacias = L.geoJson(farmaciasData, asignarIconoFarmacias);
When a layer needs both a custom icon and a popup, pass pointToLayer and onEachFeature as separate options to L.geoJson(). The pre-built asignar* objects only set pointToLayer, so you will always need to add onEachFeature manually for popup support.

Companion asignar* objects

Every factory function has a matching plain object that packages it as a ready-to-use pointToLayer option:
Options ObjectFactory Used
asignarIconoTrencrearIconoTren
asignarIconoComerciocrearIconoComercio
asignarIconoCultocrearIconoCulto
asignarIconoCulturacrearIconoCultura
asignarIconoAsistenciacrearIconoAsistencia
asignarIconoEsparcimientocrearIconoEsparcimiento
asignarIconoEnseñanzacrearIconoEnseñanza
asignarIconoOficinacrearIconoOficina
asignarIconoServicioscrearIconoServicios
asignarIconoVerdecrearIconoVerde
asignarIconoRojocrearIconoRojo
asignarIconoNegrocrearIconoNegro
asignarIconoAzulcrearIconoAzul
asignarIconoDoradocrearIconoDorado
asignarIconoNaranjacrearIconoNaranja
asignarIconoGriscrearIconoGris
asignarIconoVioletacrearIconoVioleta
asignarIconoWificrearIconoWifi
asignarIconoAmarillocrearIconoAmarillo
asignarIconoAntenacrearIconoAntena
asignarIconoBibliocrearIconoBiblio
asignarIconoCentrosaludcrearIconoCentrosalud
asignarIconoesculcrearIconoEscul
asignarIconoClinicaprivadacrearIconoClinicaprivada
asignarIconoDependmunicrearIconoDependmuni
asignarIconoEstabeducatcrearIconoEstabeducat
asignarIconoFarmaciascrearIconoFarmacias
asignarIconoHospitalescrearIconoHospitales
asignarIconoPilascrearIconoPilas
asignarIconoSeguridadcrearIconoSeguridad
asignarIconoJardmaterncrearIconoJardmatern
asignarIconoPolicrearIconoPoli
asignarIconositioscrearIconositios
asignarIconoedicrearIconoedi
asignarIconoPersicrearIconoPersi
asignarIconoMastcrearIconoMast
asignarIconoMastpcrearIconoMastp
asignarIconoPanelcrearIconoPanel
asignarIconoUniveccrearIconoUnivec
asignarIconoVerde2crearIconoVerde2
asignarIconoSema_r2crearIconoSema_r2

Build docs developers (and LLMs) love