Web Components Geographic Bubble Map

    In Web Components map component, you can use the IgcGeographicProportionalSymbolSeriesComponent to plot bubbles or proportional markers at the geographic locations specified by the data in your application. This map series can be useful for highlighting points of interest in your particular business case like department stores, warehouses, or offices. Also you can use this map series in a fleet management system or a GPS system for dynamic vehicle tracking.

    Web Components Geographic Bubble Map Example

    EXAMPLE
    DATA
    TS
    HTML
    CSS

    Like this sample? Get access to our complete Ignite UI for Web Components toolkit and start building your own apps in minutes. Download it for free.

    The demo above shows the IgcGeographicProportionalSymbolSeriesComponent series and how to specify data binding options of the series. Automatic marker selection is configured along with marker collision avoidance logic, and marker outline and fill colors are specified too.

    Configuration Summary

    Similar to other types of scatter series in the map control, the IgcGeographicProportionalSymbolSeriesComponent series has the ItemsSource property which can be bound to an array of objects. In addition, each data item in the items source must have two data columns that store geographic longitude and latitude coordinates and uses the longitudeMemberPath and latitudeMemberPath properties to map these data columns. The radiusScale and radiusMemberPath will settings configures the radius for the bubbles.

    The following table summarizes the GeographicHighDensityScatterSeries series properties used for data binding.

    Property Type Description
    ItemsSource any Gets or sets the items source
    longitudeMemberPath string Uses the ItemsSource property to determine the location of the longitude values on the assigned items
    latitudeMemberPath string Uses the ItemsSource property to determine the location of the latitude values on the assigned items
    radiusMemberPath string Sets the path to use to get the radius values for the series.
    radiusScale IgcSizeScaleComponent Gets or sets the radius scale property for the current bubble series.
    minimumValue any Configure the minimum value for calculating value sub ranges.
    maximumValue any Configure the maximum value for calculating value sub ranges.
    Ignite UI for Web Components | CTA Banner

    Code Snippet

    <igc-geographic-map id="geoMap" width="100%" height="100%">
    
    </igc-geographic-map>
    html
    import { IgcGeographicProportionalSymbolSeriesComponent } from 'igniteui-webcomponents-maps';
    import { IgcValueBrushScaleComponent } from 'igniteui-webcomponents-charts';
    import { IgcSizeScaleComponent } from 'igniteui-webcomponents-charts';
    //...
    connectedCallback() {
        this.geoMap = document.getElementById("geoMap") as IgcGeographicMapComponent;
        this.addSeriesWith(WorldLocations.getAll());
    }
    
    addSeriesWith(locations: any[])
    {
        const sizeScale = new IgcSizeScaleComponent();
        sizeScale.minimumValue = 4;
        sizeScale.maximumValue = 60;
    
        const brushes = [
            "rgba(14, 194, 14, 0.4)",  // semi-transparent green
            "rgba(252, 170, 32, 0.4)", // semi-transparent orange
            "rgba(252, 32, 32, 0.4)",  // semi-transparent red
        ];
    
        const brushScale = new IgcValueBrushScaleComponent();
        brushScale.brushes = brushes;
        brushScale.minimumValue = 0;
        brushScale.maximumValue = 30;
    
        const symbolSeries = new IgcGeographicProportionalSymbolSeriesComponent ();
        symbolSeries.dataSource = locations;
        symbolSeries.markerType = MarkerType.Circle;
        symbolSeries.radiusScale = sizeScale;
        symbolSeries.fillScale = brushScale;
        symbolSeries.fillMemberPath = "pop";
        symbolSeries.radiusMemberPath = "pop";
        symbolSeries.latitudeMemberPath = "lat";
        symbolSeries.longitudeMemberPath = "lon";
        symbolSeries.markerOutline = "rgba(0,0,0,0.3)";
    
        this.geoMap.series.add(symbolSeries);
    }
    ts

    API References