«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Добавить собственный слой в embe-leaflet

Добавить собственный слой в embe-leaflet

Опубликовано 4 ноября 2024 г.
Просматривать:332

Add custom layer to embe-leaflet

Проблема

ember-leaflet — очень популярный аддон из экосистемы EmberJS, обеспечивающий большую гибкость.

Но что, если я захочу расширить его функциональность, чтобы он мог делать еще больше? А что, если я хочу, чтобы это был новый компонент, полученный непосредственно из слоев ?

Решение

Сначала нам понадобится наш новый компонент. Для простоты этот компонент просто расширяет существующий компонент слоя из дополнения. Давайте воспользуемся компонентом маркера и сделаем так, чтобы он просто игнорировал аргумент местоположения и устанавливал поддельное, жестко закодированное значение:

// 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);
  }
}

После этого нам нужно будет зарегистрировать компонент в сервисе 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,
};

И теперь мы можем его использовать:

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

Примечания

Вы также можете прочитать об этой технике на официальной странице документации ember-leaflet.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/michalbryxi/add-custom-comComponent-to-embe-leaflet-5475?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3