Wpis z mikrobloga

#javascript #mapy #leaflet
W leaflet https://leafletjs.com/reference-1.5.0.html
trzeba używać tego tak:
marker = L.marker([50.28895538456755, 18.681907653808594]).addTo(map)

chciałbym
map.marker([50.28895538456755, 18.681907653808594]);

żeby nie pisać powtarzającego się addTo...

Do tego można by używać JS Proxy albo czegoś podobnego.

Czy leaflet ma gotową możliwość używania go w ten sposób?
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • Doceń
@passage: No tak, nie napisałem dokładnie.
chodzi o ogólne rozwiązanie, gdzie dowolna nazwa metody odpala w rzeczywistości
mapL.nazwaMetody(atrr);
zamienia się na
  • Odpowiedz
@look997: w takim razie musisz przekazać do funkcji thisa z L przez bind. Poczytaj jak działa bind() (w rzeczywistości tak jak Proxy, tyle, że jest prostsze, bo proxy ma dodatkowe features pozwalające na odłączaniu thisa)
  • Odpowiedz
@passage: Zrobiłem to tak:
function createMapL (mapId) {
const map = L.map(mapId);
return [map, new Proxy(map, {
get(target, propKey, receiver) {
const origMethod
  • Odpowiedz