Example #1
0
        protected virtual void WriteHtml(HtmlTextWriter writer)
        {
            if (writer == null)
            {
                throw new ArgumentNullException("writer");
            }

            IHtmlNode rootTag = builder.Build();

            rootTag.WriteTo(writer);

            var languaje      = (Culture != null) ? "&language=" + Culture.TwoLetterISOLanguageName : String.Empty;
            var key           = (ApiKey.HasValue()) ? "&key=" + ApiKey : String.Empty;
            var visualization = Layers.Any(l => l.GetType() == typeof(HeatmapLayer)) ? "&libraries=visualization" : "";
            var isAjax        = builder.ViewContext.HttpContext.Request.IsAjaxRequest() ? "&callback=executeAsync" : "";
            var version       = (String.IsNullOrWhiteSpace(Version)) ? "" : ("v=" + Version);
            var mainJs        = String.Format("https://maps.googleapis.com/maps/api/js?{0}{1}{2}{3}{4}", version, key, languaje, visualization, isAjax);

            ScriptFileNames.Add(mainJs);

            if (EnableMarkersClustering)
            {
                ScriptFileNames.Add("markerclusterer.js");
            }

            if (Markers.Any(m => m.Window != null))
            {
                //Build Container for InfoWindows
                IHtmlNode infoWindowsRootTag = new HtmlElement("div")
                                               .Attribute("id", String.Format("{0}-InfoWindowsHolder", Id))
                                               .Attribute("style", "display: none");

                Markers.Where(m => m.Window != null).Each(m =>
                {
                    IHtmlNode markerInfoWindows = new HtmlElement("div")
                                                  .Attribute("id", String.Format("{0}Marker{1}", Id, m.Index))
                                                  .AddClass("content");

                    m.Window.Template.Apply(markerInfoWindows);
                    infoWindowsRootTag.Children.Add(markerInfoWindows);
                });

                infoWindowsRootTag.WriteTo(writer);
            }
        }
Example #2
0
        protected virtual void WriteHtml(HtmlTextWriter writer)
        {
            if (writer == null)
            {
                throw new ArgumentNullException("writer");
            }

            var       builder = new GoogleMapBuilder(this);
            IHtmlNode rootTag = builder.Build();

            rootTag.WriteTo(writer);

            var languaje = (Culture != null) ? "&language=" + Culture.TwoLetterISOLanguageName : String.Empty;
            var key      = (ApiKey.HasValue()) ? "&key=" + ApiKey : String.Empty;

            var mainJs = String.Format("https://maps.googleapis.com/maps/api/js?v=3.exp{0}{1}", key, languaje);

            ScriptFileNames.Add(mainJs);

            if (EnableMarkersClustering)
            {
                ScriptFileNames.Add("markerclusterer.js");
            }

            if (Markers.Any(m => m.Window != null))
            {
                //Build Container for InfoWindows
                IHtmlNode infoWindowsRootTag = new HtmlElement("div")
                                               .Attribute("id", String.Format("{0}-InfoWindowsHolder", Id))
                                               .Attribute("style", "display: none");

                Markers.Where(m => m.Window != null).Each(m =>
                {
                    IHtmlNode markerInfoWindows = new HtmlElement("div")
                                                  .Attribute("id", String.Format("{0}Marker{1}", Id, m.Index))
                                                  .AddClass("content");

                    m.Window.Template.Apply(markerInfoWindows);
                    infoWindowsRootTag.Children.Add(markerInfoWindows);
                });

                infoWindowsRootTag.WriteTo(writer);
            }
        }