カスタムレイヤーをembe-leafletに追加

王林
リリース: 2024-09-04 20:30:08
オリジナル
391 人が閲覧しました

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';

<template>
  <LeafletMap
    @lat={{46.6}}
    @lng={{7.8}}
    @zoom={{15}}
    as |layers|
  >
    <layers.fake-marker @lat={{999.99}} @lng={{0}} />
  </LeafletMap>
</template>
ログイン後にコピー

注意事項

このテクニックについては、公式 ember-leaflet ドキュメント ページでも読むことができます。

以上がカスタムレイヤーをembe-leafletに追加の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!