Category:Heat Map: Difference between revisions

From Maria GDK Wiki
Jump to navigation Jump to search
()
()
Line 10: Line 10:


=== Heat maps in GDK ===
=== Heat maps in GDK ===
Heat maps are implemented as a separate layer in Maria GDK.  
Heat maps are implemented as a separate layer in Maria GDK. IHeatMapLayerViewModel exposes the heat map API:


<source lang="c#">
<source lang="c#">
namespace TPG.GeoFramework.HeatMapLayer
{
     /// <summary>
     /// <summary>
     /// View model for general heat maps
     /// View model for general heat maps
Line 31: Line 33:
         /// </summary>
         /// </summary>
         HeatMapSettings HeatMapSettings { get; }
         HeatMapSettings HeatMapSettings { get; }
       
          
          
         /// <summary>
         /// <summary>
Line 48: Line 49:
         /// </summary>
         /// </summary>
         KernelShapeEnum KernelShape { get; set; }
         KernelShapeEnum KernelShape { get; set; }
       
 
       
         /// <summary>
         /// <summary>
         /// Max pixel radius used when applying kernel. This is relevant when setting the kernel unit to "meters"
         /// Max pixel radius used when applying kernel. This is relevant when setting the kernel unit to "meters"
Line 60: Line 60:
         /// </summary>
         /// </summary>
         double ValueScale { get; set; }
         double ValueScale { get; set; }
       
          
          
         /// <summary>
         /// <summary>
Line 67: Line 66:
         int GridCellSize { get; set; }
         int GridCellSize { get; set; }
     }
     }
}
</source>
</source>

Revision as of 10:11, 17 November 2020

General

Heat maps are typically used to indicate density of data points geographically using color coding. They can be used to visualise large amounts of point data in 2D.

Examples include:

  • Historical positions
  • Population densities
  • Frequency of events

https://en.wikipedia.org/wiki/Heat_map

Heat maps in GDK

Heat maps are implemented as a separate layer in Maria GDK. IHeatMapLayerViewModel exposes the heat map API:

namespace TPG.GeoFramework.HeatMapLayer
{
    /// <summary>
    /// View model for general heat maps
    /// </summary>
    public interface IHeatMapLayerViewModel:IGeoLayerViewModel
    {
        /// <summary>
        /// Heat map data is organized in HeatMapGroups. Each group contains clusters of heat map data.
        /// Separate settings and color palettes can be set for each group.
        /// Note that the heat map property setters are applied to both default settings and to all groups.
        /// For detailed, individual group settings control, access elements in the HeatMapGroups directly
        /// </summary>
        ObservableCollection<HeatMapGroup> HeatMapGroups { get; }
        
        /// <summary>
        /// HeatMapSettings contain global settings and a default group setting that
        /// is used when no settings are available for a heat map group.
        /// </summary>
        HeatMapSettings HeatMapSettings { get; }
        
        /// <summary>
        /// Sets kernel radius unit (meters or pixels)
        /// </summary>
        KernelRadiusUnitEnum KernelRadiusUnit { get; set; }

        /// <summary>
        /// Kernel radius, unit controlled by KernelRadiusUnit
        /// </summary>
        UInt32 KernelRadius { get; set; }

        /// <summary>
        /// Sets kernel shape. The kernel shape controls how values are smoothed in the HeatMap.
        /// See https://en.wikipedia.org/wiki/Kernel_(statistics)#Kernel_functions_in_common_use
        /// </summary>
        KernelShapeEnum KernelShape { get; set; }

        /// <summary>
        /// Max pixel radius used when applying kernel. This is relevant when setting the kernel unit to "meters"
        /// and is used to limit demanding calculations
        /// </summary>
        double MaxPixelRadius { get; set; }
        
        /// <summary>
        /// Multiplier is applied to all values prior to applying the kernel
        /// </summary>
        double ValueScale { get; set; }
        
        /// <summary>
        /// Smaller grid cell sizes yield higher quality heat maps. Larger grid cell sizes are quicker. Typical range is 1-10. 
        /// </summary>
        int GridCellSize { get; set; }
    }
}

This category currently contains no pages or media.