"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Agregar capa personalizada al folleto embebido

Agregar capa personalizada al folleto embebido

Publicado el 2024-11-04
Navegar:139

Add custom layer to embe-leaflet

el problema

ember-leaflet es un complemento muy popular del ecosistema EmberJS que permite mucha flexibilidad.

Pero ¿qué pasa si quiero ampliar su funcionalidad para que pueda hacer aún más? ¿Y qué pasa si lo quiero como un nuevo componente generado directamente desde las capas de ?

la solución

Al principio necesitaremos nuestro nuevo componente. Para simplificar, este componente simplemente extenderá un componente de capa existente del complemento. Usemos el componente marcador y hagamos que simplemente ignore el argumento de ubicación y establezca un valor falso codificado:

// app/components/fake-marker-layer.gts

import MarkerLayer from 'ember-leaflet/components/marker-layer';

export default class FakeMarkerLayer extends MarkerLayer {
  get location() {
    return this.L.latLng(46.68, 7.85);
  }
}

Después de esto necesitaremos registrar el componente con el servicio ember-leaflet:

// app/instance-initializers/leaflet.ts

import FakeMarkerLayer from '../components/fake-marker-layer';
import type Owner from '@ember/owner';

export function initialize(owner: Owner) {
  const emberLeafletService = owner.lookup('service:ember-leaflet');

  if (emberLeafletService) {
    emberLeafletService.registerComponent('fake-marker-layer', {
      as: 'fake-marker',
      component: FakeMarkerLayer,
    });
  }
}

export default {
  initialize,
};

Y ahora podemos usarlo:

import LeafletMap from 'ember-leaflet/components/leaflet-map';


Notas

También puedes leer sobre esta técnica en la página de documentación oficial del folleto de brasas.

Declaración de liberación Este artículo se reproduce en: https://dev.to/michalbryxi/add-custom-component-to-embe-leaflet-5475?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3