Kiss and overlap detection -- Michael Buen

Was tasked to detect kiss or overlap between points

HTML

<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>

<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>

JavaScript

$(function () {
    var chart;
    $(document).ready(function() {
        chart = new Highcharts.Chart({
            chart: {
                renderTo: 'container',
                type: 'scatter',
                zoomType: 'xy'
            },
            title: {
                text: 'Height Versus Weight of 507 Individuals by Gender'
            },
            subtitle: {
                text: 'Source: Heinz  2003'
            },
            xAxis: {
                title: {
                    enabled: true,
                    text: 'Height (cm)'
                },
                startOnTick: true,
                endOnTick: true,
                showLastLabel: true
            },
            yAxis: {
                title: {
                    text: 'Weight (kg)'
                }
            },
            tooltip: {
                formatter: function() {
                       
                   // console.log(this); 

                   // Michael Buen is here                    
                    
                    var search = this.series.chart.series[0].data;

                    var a = this.point;
         
                    var overlapCount = 0;                    
                    for(var i in search) {
                                                
                        var b = search[i];
                        var d = getDistance(a, b);
                        
                        // choose an overlap threshold
                        var kiss = 5 * 2; 
                        var halfOverlap = 5;
                        var fullOverlap = 2.5;
                        if (d <= kiss) {
                            ++overlapCount;
                        }
                                                
                    }
                    
                                        
                    return this.x +' cm, '+ this.y +' kg' + a.plotX + ' <br/><b>Overlaps:</b> ' + overlapCount;
                }
           ...