public GoogleMap(GoogleMapBuilder builder) { this.builder = builder; ScriptFileNames = new List <string>(); ScriptFileNames.AddRange(new[] { "jmelosegui.googlemap.js" }); Initialize(); }
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); } }