Data-Bound Heatmap Sample

A sample about ASP.NET Google Map Control Data-Bound Heatmap Layer.

This is a sample how you can bind heatmap layer to a DataSource control.
In the current sample we bind it to an ObjectDataSource, but in a similar way it can bound to SqlDataSource fetching the data from database for example.

Thank you for using the Development Build of ASP.NET Google Map Control to build Google Maps faster.
Purchase the Commercial Build now to get access to all product updates and the ASP.NET Google Map Control expert support.

Source

Markup

<%@ Page Language="C#" MasterPageFile="~/samples/Maps/Maps.master" AutoEventWireup="true" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <div class="jumbotron">
        <h2>Data-Bound Heatmap Sample</h2>
        <p>
            A sample about ASP.NET Google Map Control Data-Bound Heatmap Layer.
        </p>
    </div>
    <p>
        This is a sample how you can bind heatmap layer to a DataSource control.<br />
        In the current sample we bind it to an ObjectDataSource,
        but in a similar way it can bound to SqlDataSource fetching the data from database for example.
    </p>
    <div class="map-wrap">
        <map:GoogleMap ID="GoogleMap1" runat="server" CssClass="map" Latitude="37.775" Longitude="-122.434" Zoom="13"
            Width="100%" Height="600px" FullscreenControl="true">
        </map:GoogleMap>
    </div>
    <map:HeatmapLayer ID="Heatmap1" runat="server" TargetControlID="GoogleMap1"
        DataSourceID="HeatampDataSource1" DataLatitudeField="Lat" DataLongitudeField="Lng"></map:HeatmapLayer>
    <asp:ObjectDataSource ID="HeatampDataSource1" runat="server"
        TypeName="GoogleMaps.Samples.Data.Sources.HeatmapDataSource" SelectMethod="GetDataObjects"></asp:ObjectDataSource>
    
</asp:Content>

Object Data Source

using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;

namespace GoogleMaps.Samples.Data.Sources
{
    [DataObject(true)]
    public static class HeatmapDataSource
    {
        public static IEnumerable<HeatmapDataObject> GetDataObjects()
        {
            return GetRawData().Select(x => new HeatmapDataObject { Lat = x.Latitude, Lng = x.Longitude });
        }

        public static IEnumerable<LatLng> GetRawData()
        {
            yield return new LatLng(37.782551, -122.445368);
            yield return new LatLng(37.782745, -122.444586);
            yield return new LatLng(37.782842, -122.443688);
            yield return new LatLng(37.782919, -122.442815);
            yield return new LatLng(37.782992, -122.442112);
            yield return new LatLng(37.783100, -122.441461);
            yield return new LatLng(37.783206, -122.440829);
            yield return new LatLng(37.783273, -122.440324);
            yield return new LatLng(37.783316, -122.440023);
            yield return new LatLng(37.783357, -122.439794);
            yield return new LatLng(37.783371, -122.439687);
            yield return new LatLng(37.783368, -122.439666);
            yield return new LatLng(37.783383, -122.439594);
            yield return new LatLng(37.783508, -122.439525);
            yield return new LatLng(37.783842, -122.439591);
            yield return new LatLng(37.784147, -122.439668);
            yield return new LatLng(37.784206, -122.439686);
            yield return new LatLng(37.784386, -122.439790);
            yield return new LatLng(37.784701, -122.439902);
            yield return new LatLng(37.784965, -122.439938);
            yield return new LatLng(37.785010, -122.439947);
            yield return new LatLng(37.785360, -122.439952);
            yield return new LatLng(37.785715, -122.440030);
            yield return new LatLng(37.786117, -122.440119);
            yield return new LatLng(37.786564, -122.440209);
            yield return new LatLng(37.786905, -122.440270);
            yield return new LatLng(37.786956, -122.440279);
            yield return new LatLng(37.800224, -122.433520);
            yield return new LatLng(37.800155, -122.434101);
            yield return new LatLng(37.800160, -122.434430);
            yield return new LatLng(37.800378, -122.434527);
            yield return new LatLng(37.800738, -122.434598);
            yield return new LatLng(37.800938, -122.434650);
            yield return new LatLng(37.801024, -122.434889);
            yield return new LatLng(37.800955, -122.435392);
            yield return new LatLng(37.800886, -122.435959);
            yield return new LatLng(37.800811, -122.436275);
            yield return new LatLng(37.800788, -122.436299);
            yield return new LatLng(37.800719, -122.436302);
            yield return new LatLng(37.800702, -122.436298);
            yield return new LatLng(37.800661, -122.436273);
            yield return new LatLng(37.800395, -122.436172);
            yield return new LatLng(37.800228, -122.436116);
            yield return new LatLng(37.800169, -122.436130);
            yield return new LatLng(37.800066, -122.436167);
            yield return new LatLng(37.784345, -122.422922);
            yield return new LatLng(37.784389, -122.422926);
            yield return new LatLng(37.784437, -122.422924);
            yield return new LatLng(37.784746, -122.422818);
            yield return new LatLng(37.785436, -122.422959);
            yield return new LatLng(37.786120, -122.423112);
            yield return new LatLng(37.786433, -122.423029);
            yield return new LatLng(37.786631, -122.421213);
            yield return new LatLng(37.786660, -122.421033);
            yield return new LatLng(37.786801, -122.420141);
            yield return new LatLng(37.786823, -122.420034);
            yield return new LatLng(37.786831, -122.419916);
            yield return new LatLng(37.787034, -122.418208);
            yield return new LatLng(37.787056, -122.418034);
            yield return new LatLng(37.787169, -122.417145);
            yield return new LatLng(37.787217, -122.416715);
            yield return new LatLng(37.786144, -122.416403);
            yield return new LatLng(37.785292, -122.416257);
            yield return new LatLng(37.780666, -122.390374);
            yield return new LatLng(37.780501, -122.391281);
            yield return new LatLng(37.780148, -122.392052);
            yield return new LatLng(37.780173, -122.391148);
            yield return new LatLng(37.780693, -122.390592);
            yield return new LatLng(37.781261, -122.391142);
            yield return new LatLng(37.781808, -122.391730);
            yield return new LatLng(37.782340, -122.392341);
            yield return new LatLng(37.782812, -122.393022);
            yield return new LatLng(37.783300, -122.393672);
            yield return new LatLng(37.783809, -122.394275);
            yield return new LatLng(37.784246, -122.394979);
            yield return new LatLng(37.784791, -122.395958);
            yield return new LatLng(37.785675, -122.396746);
            yield return new LatLng(37.786262, -122.395780);
            yield return new LatLng(37.786776, -122.395093);
            yield return new LatLng(37.787282, -122.394426);
            yield return new LatLng(37.787783, -122.393767);
            yield return new LatLng(37.788343, -122.393184);
            yield return new LatLng(37.788895, -122.392506);
            yield return new LatLng(37.789371, -122.391701);
            yield return new LatLng(37.789722, -122.390952);
            yield return new LatLng(37.790315, -122.390305);
            yield return new LatLng(37.790738, -122.389616);
            yield return new LatLng(37.779448, -122.438702);
            yield return new LatLng(37.779023, -122.438585);
            yield return new LatLng(37.778542, -122.438492);
            yield return new LatLng(37.778100, -122.438411);
            yield return new LatLng(37.777986, -122.438376);
            yield return new LatLng(37.777680, -122.438313);
            yield return new LatLng(37.777316, -122.438273);
            yield return new LatLng(37.777135, -122.438254);
            yield return new LatLng(37.776987, -122.438303);
            yield return new LatLng(37.776946, -122.438404);
            yield return new LatLng(37.776944, -122.438467);
            yield return new LatLng(37.776892, -122.438459);
            yield return new LatLng(37.776842, -122.438442);
            yield return new LatLng(37.776822, -122.438391);
            yield return new LatLng(37.776814, -122.438412);
            yield return new LatLng(37.776787, -122.438628);
            yield return new LatLng(37.776729, -122.438650);
            yield return new LatLng(37.776759, -122.438677);
            yield return new LatLng(37.776772, -122.438498);
            yield return new LatLng(37.776787, -122.438389);
            yield return new LatLng(37.776848, -122.438283);
            yield return new LatLng(37.776870, -122.438239);
            yield return new LatLng(37.777015, -122.438198);
            yield return new LatLng(37.777333, -122.438256);
            yield return new LatLng(37.777595, -122.438308);
            yield return new LatLng(37.777797, -122.438344);
            yield return new LatLng(37.778160, -122.438442);
            yield return new LatLng(37.778414, -122.438508);
            yield return new LatLng(37.778445, -122.438516);
            yield return new LatLng(37.778503, -122.438529);
            yield return new LatLng(37.778607, -122.438549);
            yield return new LatLng(37.778670, -122.438644);
            yield return new LatLng(37.778847, -122.438706);
            yield return new LatLng(37.779240, -122.438744);
            yield return new LatLng(37.779738, -122.438822);
            yield return new LatLng(37.780201, -122.438882);
            yield return new LatLng(37.780400, -122.438905);
            yield return new LatLng(37.780501, -122.438921);
            yield return new LatLng(37.780892, -122.438986);
            yield return new LatLng(37.781446, -122.439087);
            yield return new LatLng(37.781985, -122.439199);
            yield return new LatLng(37.782239, -122.439249);
            yield return new LatLng(37.782286, -122.439266);
            yield return new LatLng(37.797847, -122.429388);
            yield return new LatLng(37.797874, -122.429180);
            yield return new LatLng(37.797885, -122.429069);
            yield return new LatLng(37.797887, -122.429050);
            yield return new LatLng(37.797933, -122.428954);
            yield return new LatLng(37.798242, -122.428990);
            yield return new LatLng(37.798617, -122.429075);
            yield return new LatLng(37.798719, -122.429092);
            yield return new LatLng(37.798944, -122.429145);
            yield return new LatLng(37.799320, -122.429251);
            yield return new LatLng(37.799590, -122.429309);
            yield return new LatLng(37.799677, -122.429324);
            yield return new LatLng(37.799966, -122.429360);
            yield return new LatLng(37.800288, -122.429430);
            yield return new LatLng(37.800443, -122.429461);
            yield return new LatLng(37.800465, -122.429474);
            yield return new LatLng(37.800644, -122.429540);
            yield return new LatLng(37.800948, -122.429620);
            yield return new LatLng(37.801242, -122.429685);
            yield return new LatLng(37.801375, -122.429702);
            yield return new LatLng(37.801400, -122.429703);
            yield return new LatLng(37.801453, -122.429707);
            yield return new LatLng(37.801473, -122.429709);
            yield return new LatLng(37.801532, -122.429707);
            yield return new LatLng(37.801852, -122.429729);
            yield return new LatLng(37.802173, -122.429789);
            yield return new LatLng(37.802459, -122.429847);
            yield return new LatLng(37.802554, -122.429825);
            yield return new LatLng(37.802647, -122.429549);
            yield return new LatLng(37.802693, -122.429179);
            yield return new LatLng(37.802729, -122.428751);
            yield return new LatLng(37.766104, -122.409291);
            yield return new LatLng(37.766103, -122.409268);
            yield return new LatLng(37.766138, -122.409229);
            yield return new LatLng(37.766183, -122.409231);
            yield return new LatLng(37.766153, -122.409276);
            yield return new LatLng(37.766005, -122.409365);
            yield return new LatLng(37.765897, -122.409570);
            yield return new LatLng(37.765767, -122.409739);
            yield return new LatLng(37.765693, -122.410389);
            yield return new LatLng(37.765615, -122.411201);
            yield return new LatLng(37.765533, -122.412121);
            yield return new LatLng(37.765467, -122.412939);
            yield return new LatLng(37.765444, -122.414821);
            yield return new LatLng(37.765444, -122.414964);
            yield return new LatLng(37.765318, -122.415424);
            yield return new LatLng(37.763961, -122.415296);
            yield return new LatLng(37.763115, -122.415196);
            yield return new LatLng(37.762967, -122.415183);
            yield return new LatLng(37.762278, -122.415127);
            yield return new LatLng(37.761675, -122.415055);
            yield return new LatLng(37.760932, -122.414988);
            yield return new LatLng(37.759337, -122.414862);
            yield return new LatLng(37.773187, -122.421922);
            yield return new LatLng(37.773043, -122.422118);
            yield return new LatLng(37.773007, -122.422165);
            yield return new LatLng(37.772979, -122.422219);
            yield return new LatLng(37.772865, -122.422394);
            yield return new LatLng(37.772779, -122.422503);
            yield return new LatLng(37.772676, -122.422701);
            yield return new LatLng(37.772606, -122.422806);
            yield return new LatLng(37.772566, -122.422840);
            yield return new LatLng(37.772508, -122.422852);
            yield return new LatLng(37.772387, -122.423011);
            yield return new LatLng(37.772099, -122.423328);
            yield return new LatLng(37.771704, -122.423783);
            yield return new LatLng(37.771481, -122.424081);
            yield return new LatLng(37.771400, -122.424179);
            yield return new LatLng(37.771352, -122.424220);
            yield return new LatLng(37.771248, -122.424327);
            yield return new LatLng(37.770904, -122.424781);
            yield return new LatLng(37.770520, -122.425283);
            yield return new LatLng(37.770337, -122.425553);
            yield return new LatLng(37.770128, -122.425832);
            yield return new LatLng(37.769756, -122.426331);
            yield return new LatLng(37.769300, -122.426902);
            yield return new LatLng(37.769132, -122.427065);
            yield return new LatLng(37.769092, -122.427103);
            yield return new LatLng(37.768979, -122.427172);
            yield return new LatLng(37.768595, -122.427634);
            yield return new LatLng(37.768372, -122.427913);
            yield return new LatLng(37.768337, -122.427961);
            yield return new LatLng(37.768244, -122.428138);
            yield return new LatLng(37.767942, -122.428581);
            yield return new LatLng(37.767482, -122.429094);
            yield return new LatLng(37.767031, -122.429606);
            yield return new LatLng(37.766732, -122.429986);
            yield return new LatLng(37.766680, -122.430058);
            yield return new LatLng(37.766633, -122.430109);
            yield return new LatLng(37.766580, -122.430211);
            yield return new LatLng(37.766367, -122.430594);
            yield return new LatLng(37.765910, -122.431137);
            yield return new LatLng(37.765353, -122.431806);
            yield return new LatLng(37.764962, -122.432298);
            yield return new LatLng(37.764868, -122.432486);
            yield return new LatLng(37.764518, -122.432913);
            yield return new LatLng(37.763435, -122.434173);
            yield return new LatLng(37.762847, -122.434953);
            yield return new LatLng(37.762291, -122.435935);
            yield return new LatLng(37.762224, -122.436074);
            yield return new LatLng(37.761957, -122.436892);
            yield return new LatLng(37.761652, -122.438886);
            yield return new LatLng(37.761284, -122.439955);
            yield return new LatLng(37.761210, -122.440068);
            yield return new LatLng(37.761064, -122.440720);
            yield return new LatLng(37.761040, -122.441411);
            yield return new LatLng(37.761048, -122.442324);
            yield return new LatLng(37.760851, -122.443118);
            yield return new LatLng(37.759977, -122.444591);
            yield return new LatLng(37.759913, -122.444698);
            yield return new LatLng(37.759623, -122.445065);
            yield return new LatLng(37.758902, -122.445158);
            yield return new LatLng(37.758428, -122.444570);
            yield return new LatLng(37.757687, -122.443340);
            yield return new LatLng(37.757583, -122.443240);
            yield return new LatLng(37.757019, -122.442787);
            yield return new LatLng(37.756603, -122.442322);
            yield return new LatLng(37.756380, -122.441602);
            yield return new LatLng(37.755790, -122.441382);
            yield return new LatLng(37.754493, -122.442133);
            yield return new LatLng(37.754361, -122.442206);
            yield return new LatLng(37.753719, -122.442650);
            yield return new LatLng(37.753096, -122.442915);
            yield return new LatLng(37.751617, -122.443211);
            yield return new LatLng(37.751496, -122.443246);
            yield return new LatLng(37.750733, -122.443428);
            yield return new LatLng(37.750126, -122.443536);
            yield return new LatLng(37.750103, -122.443784);
            yield return new LatLng(37.750390, -122.444010);
            yield return new LatLng(37.750448, -122.444013);
            yield return new LatLng(37.750536, -122.444040);
            yield return new LatLng(37.750493, -122.444141);
            yield return new LatLng(37.790859, -122.402808);
            yield return new LatLng(37.790864, -122.402768);
            yield return new LatLng(37.790995, -122.402539);
            yield return new LatLng(37.791148, -122.402172);
            yield return new LatLng(37.791385, -122.401312);
            yield return new LatLng(37.791405, -122.400776);
            yield return new LatLng(37.791288, -122.400528);
            yield return new LatLng(37.791113, -122.400441);
            yield return new LatLng(37.791027, -122.400395);
            yield return new LatLng(37.791094, -122.400311);
            yield return new LatLng(37.791211, -122.400183);
            yield return new LatLng(37.791060, -122.399334);
            yield return new LatLng(37.790538, -122.398718);
            yield return new LatLng(37.790095, -122.398086);
            yield return new LatLng(37.789644, -122.397360);
            yield return new LatLng(37.789254, -122.396844);
            yield return new LatLng(37.788855, -122.396397);
            yield return new LatLng(37.788483, -122.395963);
            yield return new LatLng(37.788015, -122.395365);
            yield return new LatLng(37.787558, -122.394735);
            yield return new LatLng(37.787472, -122.394323);
            yield return new LatLng(37.787630, -122.394025);
            yield return new LatLng(37.787767, -122.393987);
            yield return new LatLng(37.787486, -122.394452);
            yield return new LatLng(37.786977, -122.395043);
            yield return new LatLng(37.786583, -122.395552);
            yield return new LatLng(37.786540, -122.395610);
            yield return new LatLng(37.786516, -122.395659);
            yield return new LatLng(37.786378, -122.395707);
            yield return new LatLng(37.786044, -122.395362);
            yield return new LatLng(37.785598, -122.394715);
            yield return new LatLng(37.785321, -122.394361);
            yield return new LatLng(37.785207, -122.394236);
            yield return new LatLng(37.785751, -122.394062);
            yield return new LatLng(37.785996, -122.393881);
            yield return new LatLng(37.786092, -122.393830);
            yield return new LatLng(37.785998, -122.393899);
            yield return new LatLng(37.785114, -122.394365);
            yield return new LatLng(37.785022, -122.394441);
            yield return new LatLng(37.784823, -122.394635);
            yield return new LatLng(37.784719, -122.394629);
            yield return new LatLng(37.785069, -122.394176);
            yield return new LatLng(37.785500, -122.393650);
            yield return new LatLng(37.785770, -122.393291);
            yield return new LatLng(37.785839, -122.393159);
            yield return new LatLng(37.782651, -122.400628);
            yield return new LatLng(37.782616, -122.400599);
            yield return new LatLng(37.782702, -122.400470);
            yield return new LatLng(37.782915, -122.400192);
            yield return new LatLng(37.783137, -122.399887);
            yield return new LatLng(37.783414, -122.399519);
            yield return new LatLng(37.783629, -122.399237);
            yield return new LatLng(37.783688, -122.399157);
            yield return new LatLng(37.783716, -122.399106);
            yield return new LatLng(37.783798, -122.399072);
            yield return new LatLng(37.783997, -122.399186);
            yield return new LatLng(37.784271, -122.399538);
            yield return new LatLng(37.784577, -122.399948);
            yield return new LatLng(37.784828, -122.400260);
            yield return new LatLng(37.784999, -122.400477);
            yield return new LatLng(37.785113, -122.400651);
            yield return new LatLng(37.785155, -122.400703);
            yield return new LatLng(37.785192, -122.400749);
            yield return new LatLng(37.785278, -122.400839);
            yield return new LatLng(37.785387, -122.400857);
            yield return new LatLng(37.785478, -122.400890);
            yield return new LatLng(37.785526, -122.401022);
            yield return new LatLng(37.785598, -122.401148);
            yield return new LatLng(37.785631, -122.401202);
            yield return new LatLng(37.785660, -122.401267);
            yield return new LatLng(37.803986, -122.426035);
            yield return new LatLng(37.804102, -122.425089);
            yield return new LatLng(37.804211, -122.424156);
            yield return new LatLng(37.803861, -122.423385);
            yield return new LatLng(37.803151, -122.423214);
            yield return new LatLng(37.802439, -122.423077);
            yield return new LatLng(37.801740, -122.422905);
            yield return new LatLng(37.801069, -122.422785);
            yield return new LatLng(37.800345, -122.422649);
            yield return new LatLng(37.799633, -122.422603);
            yield return new LatLng(37.799750, -122.421700);
            yield return new LatLng(37.799885, -122.420854);
            yield return new LatLng(37.799209, -122.420607);
            yield return new LatLng(37.795656, -122.400395);
            yield return new LatLng(37.795203, -122.400304);
            yield return new LatLng(37.778738, -122.415584);
            yield return new LatLng(37.778812, -122.415189);
            yield return new LatLng(37.778824, -122.415092);
            yield return new LatLng(37.778833, -122.414932);
            yield return new LatLng(37.778834, -122.414898);
            yield return new LatLng(37.778740, -122.414757);
            yield return new LatLng(37.778501, -122.414433);
            yield return new LatLng(37.778182, -122.414026);
            yield return new LatLng(37.777851, -122.413623);
            yield return new LatLng(37.777486, -122.413166);
            yield return new LatLng(37.777109, -122.412674);
            yield return new LatLng(37.776743, -122.412186);
            yield return new LatLng(37.776440, -122.411800);
            yield return new LatLng(37.776295, -122.411614);
            yield return new LatLng(37.776158, -122.411440);
            yield return new LatLng(37.775806, -122.410997);
            yield return new LatLng(37.775422, -122.410484);
            yield return new LatLng(37.775126, -122.410087);
            yield return new LatLng(37.775012, -122.409854);
            yield return new LatLng(37.775164, -122.409573);
            yield return new LatLng(37.775498, -122.409180);
            yield return new LatLng(37.775868, -122.408730);
            yield return new LatLng(37.776256, -122.408240);
            yield return new LatLng(37.776519, -122.407928);
            yield return new LatLng(37.776539, -122.407904);
            yield return new LatLng(37.776595, -122.407854);
            yield return new LatLng(37.776853, -122.407547);
            yield return new LatLng(37.777234, -122.407087);
            yield return new LatLng(37.777644, -122.406558);
            yield return new LatLng(37.778066, -122.406017);
            yield return new LatLng(37.778468, -122.405499);
            yield return new LatLng(37.778866, -122.404995);
            yield return new LatLng(37.779295, -122.404455);
            yield return new LatLng(37.779695, -122.403950);
            yield return new LatLng(37.779982, -122.403584);
            yield return new LatLng(37.780295, -122.403223);
            yield return new LatLng(37.780664, -122.402766);
            yield return new LatLng(37.781043, -122.402288);
            yield return new LatLng(37.781399, -122.401823);
            yield return new LatLng(37.781727, -122.401407);
            yield return new LatLng(37.781853, -122.401247);
            yield return new LatLng(37.781894, -122.401195);
            yield return new LatLng(37.782076, -122.400977);
            yield return new LatLng(37.782338, -122.400603);
            yield return new LatLng(37.782666, -122.400133);
            yield return new LatLng(37.783048, -122.399634);
            yield return new LatLng(37.783450, -122.399198);
            yield return new LatLng(37.783791, -122.398998);
            yield return new LatLng(37.784177, -122.398959);
            yield return new LatLng(37.784388, -122.398971);
            yield return new LatLng(37.784404, -122.399128);
            yield return new LatLng(37.784586, -122.399524);
            yield return new LatLng(37.784835, -122.399927);
            yield return new LatLng(37.785116, -122.400307);
            yield return new LatLng(37.785282, -122.400539);
            yield return new LatLng(37.785346, -122.400692);
            yield return new LatLng(37.765769, -122.407201);
            yield return new LatLng(37.765790, -122.407414);
            yield return new LatLng(37.765802, -122.407755);
            yield return new LatLng(37.765791, -122.408219);
            yield return new LatLng(37.765763, -122.408759);
            yield return new LatLng(37.765726, -122.409348);
            yield return new LatLng(37.765716, -122.409882);
            yield return new LatLng(37.765708, -122.410202);
            yield return new LatLng(37.765705, -122.410253);
            yield return new LatLng(37.765707, -122.410369);
            yield return new LatLng(37.765692, -122.410720);
            yield return new LatLng(37.765699, -122.411215);
            yield return new LatLng(37.765687, -122.411789);
            yield return new LatLng(37.765666, -122.412373);
            yield return new LatLng(37.765598, -122.412883);
            yield return new LatLng(37.765543, -122.413039);
            yield return new LatLng(37.765532, -122.413125);
            yield return new LatLng(37.765500, -122.413553);
            yield return new LatLng(37.765448, -122.414053);
            yield return new LatLng(37.765388, -122.414645);
            yield return new LatLng(37.765323, -122.415250);
            yield return new LatLng(37.765303, -122.415847);
            yield return new LatLng(37.765251, -122.416439);
            yield return new LatLng(37.765204, -122.417020);
            yield return new LatLng(37.765172, -122.417556);
            yield return new LatLng(37.765164, -122.418075);
            yield return new LatLng(37.765153, -122.418618);
            yield return new LatLng(37.765136, -122.419112);
            yield return new LatLng(37.765129, -122.419378);
            yield return new LatLng(37.765119, -122.419481);
            yield return new LatLng(37.765100, -122.419852);
            yield return new LatLng(37.765083, -122.420349);
            yield return new LatLng(37.765045, -122.420930);
            yield return new LatLng(37.764992, -122.421481);
            yield return new LatLng(37.764980, -122.421695);
            yield return new LatLng(37.764993, -122.421843);
            yield return new LatLng(37.764986, -122.422255);
            yield return new LatLng(37.764975, -122.422823);
            yield return new LatLng(37.764939, -122.423411);
            yield return new LatLng(37.764902, -122.424014);
            yield return new LatLng(37.764853, -122.424576);
            yield return new LatLng(37.764826, -122.424922);
            yield return new LatLng(37.764796, -122.425375);
            yield return new LatLng(37.764782, -122.425869);
            yield return new LatLng(37.764768, -122.426089);
            yield return new LatLng(37.764766, -122.426117);
            yield return new LatLng(37.764723, -122.426276);
            yield return new LatLng(37.764681, -122.426649);
            yield return new LatLng(37.782012, -122.404200);
            yield return new LatLng(37.781574, -122.404911);
            yield return new LatLng(37.781055, -122.405597);
            yield return new LatLng(37.780479, -122.406341);
            yield return new LatLng(37.779996, -122.406939);
            yield return new LatLng(37.779459, -122.407613);
            yield return new LatLng(37.778953, -122.408228);
            yield return new LatLng(37.778409, -122.408839);
            yield return new LatLng(37.777842, -122.409501);
            yield return new LatLng(37.777334, -122.410181);
            yield return new LatLng(37.776809, -122.410836);
            yield return new LatLng(37.776240, -122.411514);
            yield return new LatLng(37.775725, -122.412145);
            yield return new LatLng(37.775190, -122.412805);
            yield return new LatLng(37.774672, -122.413464);
            yield return new LatLng(37.774084, -122.414186);
            yield return new LatLng(37.773533, -122.413636);
            yield return new LatLng(37.773021, -122.413009);
            yield return new LatLng(37.772501, -122.412371);
            yield return new LatLng(37.771964, -122.411681);
            yield return new LatLng(37.771479, -122.411078);
            yield return new LatLng(37.770992, -122.410477);
            yield return new LatLng(37.770467, -122.409801);
            yield return new LatLng(37.770090, -122.408904);
            yield return new LatLng(37.769657, -122.408103);
            yield return new LatLng(37.769132, -122.407276);
            yield return new LatLng(37.768564, -122.406469);
            yield return new LatLng(37.767980, -122.405745);
            yield return new LatLng(37.767380, -122.405299);
            yield return new LatLng(37.766604, -122.405297);
            yield return new LatLng(37.765838, -122.405200);
            yield return new LatLng(37.765139, -122.405139);
            yield return new LatLng(37.764457, -122.405094);
            yield return new LatLng(37.763716, -122.405142);
            yield return new LatLng(37.762932, -122.405398);
            yield return new LatLng(37.762126, -122.405813);
            yield return new LatLng(37.761344, -122.406215);
            yield return new LatLng(37.760556, -122.406495);
            yield return new LatLng(37.759732, -122.406484);
            yield return new LatLng(37.758910, -122.406228);
            yield return new LatLng(37.758182, -122.405695);
            yield return new LatLng(37.757676, -122.405118);
            yield return new LatLng(37.757039, -122.404346);
            yield return new LatLng(37.756335, -122.403719);
            yield return new LatLng(37.755503, -122.403406);
            yield return new LatLng(37.754665, -122.403242);
            yield return new LatLng(37.753837, -122.403172);
            yield return new LatLng(37.752986, -122.403112);
            yield return new LatLng(37.751266, -122.403355);
        }
    }

    public class HeatmapDataObject
    {
        public double Lat { get; set; }

        public double Lng { get; set; }
    }
}