I'm aware that there is unbindTooltip(). But I am not sure if that will work in my case. The first problem may be the fact that I need to convert it out leaflets geojson format? The second problem is I bound the tooltips using an onEachFunction. Like this:
const onEachFunction = function (feature, layer) {
layer.bindTooltip(`
<div>
<span>tool Tip</span>
</div>
`, {
permanent: false,
direction: 'center'
});
};
const finalLayer =
L.geoJSON(currentLayer.data.layer, {style: (feature) => {
return {
fillColor: red,
weight: 1,
opacity: 1,
color: 'black',
fillOpacity: 0.6
};
},
onEachFeature: onEachFunction});
this.currentProjectLayers.push(finalLayer);
finalLayer.addTo(this.map);
I want to programatically remove the tooltip when the user clicks on a button. So right now I have
this.layerControlButtonService.transferLabelToggle
.subscribe(
(response: number) => {
this.currentProjectLayers[response].unbindToolTip();
}
);
I get
'this.currentProjectLayers[response].unbindToolTip is not a function' as my error.
Just curious if the root of my problem is because it's created using L.geoJSON (this is the format it looks like)
e {options: {…}, _layers: {…}, _leaflet_id: 141, _initHooksCalled: true, _mapToAdd: e, …}
or if its because the toolTip is bound to each point in the layer instead of the layer as a whole?
Edit: The layer will get removed if I add
this.map.removeLayer(this.currentProjectLayers[response]);
So i know its worded correctly. I can access each of the individual layers by going to
this.currentProjectLayers[response]._layers
Should I loop through those?
e {options: {…}, _layers: {…}, _leaflet_id: 59, _initHooksCalled: true,
_mapToAdd: e, …}
options: {pointToLayer: ƒ, onEachFeature: ƒ}
_initHooksCalled: true
_layers:
58: e {options: {…}, _latlng: M, _initHooksCalled: true, editing: e, feature: {…}, …}
60: e {options: {…}, _latlng: M, _initHooksCalled: true, editing: e, feature: {…}, …}
61: e {options: {…}, _latlng: M, _initHooksCalled: true, editing: e, feature: {…}, …}
62: e {options: {…}, _latlng: M, _initHooksCalled: true, editing: e, feature: {…}, …}
63: e {options: {…}, _latlng: M, _initHooksCalled: true, editing: e, feature: {…}, …}
__proto__: Object
_leaflet_id: 59
_map: e {options: {…}, _container: div#map.leaflet-container.leaflet-
touch.leaflet-fade-anim.leaflet-grab.leaflet-touch-drag.leaflet-to…,
_leaflet_id: 2, _containerId: 3, _fadeAnimated: true, …}
_mapToAdd: e {options: {…}, _container: div#map.leaflet-container.leaflet-
touch.leaflet-fade-anim.leaflet-grab.leaflet-touch-drag.leaflet-to…,
_leaflet_id: 2, _containerId: 3, _fadeAnimated: true, …}
_zoomAnimated: true
__proto__: e
And a layer looks like:
58: e
defaultOptions: {icon: e}
dragging: e {_marker: e, _initHooksCalled: true}
editing: e {_marker: e, options: {…}, _initHooksCalled: true}
feature: {type: "Feature", geometry: {…}, properties: {…}}
options: {icon: e, interactive: true, keyboard: true, title: "", alt: "", …}
_eventParents: {59: e}
_events: {remove: Array(4), move: Array(2), add: Array(1), click: Array(1),
keypress: Array(1)}
_firingCount: 0
_icon: div.leaflet-marker-icon.extra-marker-circle-purple.extra-
marker.leaflet-zoom-animated.leaflet-interactive
_initHooksCalled: true
_latlng: M {lat: 47.689846, lng: -87.015965}
_leaflet_id: 58
_map: e {options: {…}, _container: div#map.leaflet-container.leaflet-
touch.leaflet-fade-anim.leaflet-grab.leaflet-touch-drag.leaflet-to…,
_leaflet_id: 2, _containerId: 3, _fadeAnimated: true, …}
_mapToAdd: e {options: {…}, _container: div#map.leaflet-container.leaflet-
touch.leaflet-fade-anim.leaflet-grab.leaflet-touch-drag.leaflet-to…,
_leaflet_id: 2, _containerId: 3, _fadeAnimated: true, …}
_popup: e {options: {…}, _source: e, _initHooksCalled: true, _content: "↵
<div style="display: flex;↵ … </div> ↵ </div>↵
"}
_popupHandlersAdded: true
_shadow: div.leaflet-marker-shadow.extra-marker-shadow.extra-marker.leaflet-
zoom-animated
_tooltip: e {options: {…}, _source: e, _initHooksCalled: true, _content: "↵
<div style="display: flex;↵… </div>↵
", _latlng: M, …}
_tooltipHandlersAdded: true
_zIndex: 277
_zoomAnimated: true
__proto__: e