Skip to content

MESQUAL Folium CircleMarker Visualization System

viz_circle_marker

ResolvedCircleMarkerFeature dataclass

Bases: ResolvedFeature

Specialized style container for circle marker visualizations.

Source code in submodules/mesqual/mesqual/visualizations/folium_viz_system/viz_circle_marker.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
@dataclass
class ResolvedCircleMarkerFeature(ResolvedFeature):
    """Specialized style container for circle marker visualizations."""

    @property
    def location(self) -> Point:
        return self.get('location')

    @property
    def fill_color(self) -> str:
        return self.get('fill_color')

    @property
    def border_color(self) -> str:
        return self.get('border_color')

    @property
    def radius(self) -> float:
        return self.get('radius')

    @property
    def border_width(self) -> float:
        return self.get('border_width')

    @property
    def fill_opacity(self) -> float:
        return self.get('fill_opacity')

CircleMarkerGenerator

Bases: FoliumObjectGenerator[CircleMarkerFeatureResolver]

Generates folium CircleMarker objects for point geometries.

Source code in submodules/mesqual/mesqual/visualizations/folium_viz_system/viz_circle_marker.py
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
class CircleMarkerGenerator(FoliumObjectGenerator[CircleMarkerFeatureResolver]):
    """Generates folium CircleMarker objects for point geometries."""

    def _feature_resolver_type(self) -> Type[CircleMarkerFeatureResolver]:
        return CircleMarkerFeatureResolver

    def generate(self, data_item: VisualizableDataItem, feature_group: folium.FeatureGroup) -> None:
        style = self.feature_resolver.resolve_feature(data_item)
        if style.location is None:
            return

        folium.CircleMarker(
            location=(style.location.y, style.location.x),
            tooltip=style.tooltip,
            popup=style.popup,
            radius=style.radius,
            color=style.border_color,
            fillColor=style.fill_color,
            fillOpacity=style.fill_opacity,
            weight=style.border_width,
        ).add_to(feature_group)