29 lines
741 B
TypeScript
29 lines
741 B
TypeScript
import * as L from 'leaflet';
|
|
|
|
interface TooltipCircleOptions extends L.CircleOptions {
|
|
tooltipContent?: string;
|
|
}
|
|
|
|
export class TipCircle extends L.Circle {
|
|
constructor(latlng: L.LatLngExpression, options: TooltipCircleOptions) {
|
|
super(latlng, options);
|
|
if (options?.tooltipContent) {
|
|
this.bindTooltip(options.tooltipContent, {
|
|
permanent: false,
|
|
direction: 'top',
|
|
});
|
|
}
|
|
}
|
|
override setRadius(radius: number): this {
|
|
super.setRadius(radius);
|
|
if (this.getTooltip()) {
|
|
this.setTooltipContent(`New radius: ${radius}m`);
|
|
}
|
|
return this;
|
|
}
|
|
}
|
|
|
|
export const tipCircle = (latlng: L.LatLngExpression, options: TooltipCircleOptions) => {
|
|
return new TipCircle(latlng, options);
|
|
}
|