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