示例#1
0
        public override void GetHtml(HtmlTextWriter writer, int mapId, Models.Model model, string labelId = null, int?height = null,
                                     string language = null, Options.DomMonitorTypes domMonitorType = Options.DomMonitorTypes.Javascript)
        {
            const string guid = "53031a3b-dc6a-4440-a5e5-5060f691afd6";
            var          id   = nameof(Terratype) + nameof(LeafletV1) + Guid.NewGuid().ToString();

            writer.AddAttribute("data-css-files", HttpUtility.UrlEncode(JsonConvert.SerializeObject(new string[]
            {
                UrlPath("css/leaflet.css"),
                UrlPath("css/MarkerCluster.css"),
                UrlPath("css/MarkerCluster.Default.css")
            }), System.Text.Encoding.Default));
            writer.AddAttribute("data-leafletv1", HttpUtility.UrlEncode(JsonConvert.SerializeObject(model), System.Text.Encoding.Default));
            writer.AddAttribute("data-map-id", "m" + mapId.ToString());
            writer.AddAttribute("data-dom-detection-type", ((int)domMonitorType).ToString());
            if (labelId != null)
            {
                writer.AddAttribute("data-label-id", labelId);
            }
            writer.AddAttribute("data-id", id);
            writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none");
            writer.AddAttribute(HtmlTextWriterAttribute.Class, nameof(Terratype) + '.' + nameof(LeafletV1));
            writer.RenderBeginTag(HtmlTextWriterTag.Div);

            if (model.Icon != null && !HttpContext.Current.Items.Contains(guid))
            {
                HttpContext.Current.Items.Add(guid, true);
                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/Terratype.LeafletV1.Renderer.js"));
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();

                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/leaflet.js"));
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();

                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/leaflet.markercluster.js"));
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();

                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/tileservers.js"));
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();
            }

            writer.AddAttribute(HtmlTextWriterAttribute.Id, id);
            writer.AddStyleAttribute(HtmlTextWriterStyle.Height, (height != null ? height : model.Height).ToString() + "px");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.RenderEndTag();
            writer.RenderEndTag();
        }
示例#2
0
        /// <summary>
        /// Returns the Html that renders this map
        /// </summary>
        /// <param name="model"></param>
        /// <param name="height"></param>
        /// <param name="language"></param>
        /// <param name="label"></param>
        /// <returns></returns>
        public override void GetHtml(HtmlTextWriter writer, int mapId, Models.Model model, string labelId = null, int?height = null,
                                     string language = null, Options.DomMonitorTypes domMonitorType = Options.DomMonitorTypes.Javascript)
        {
            const string guid = "b72310d2-7041-4234-a6c5-6c5761dd708e";
            var          id   = nameof(Terratype) + nameof(GoogleMapsV3) + Guid.NewGuid().ToString();

            writer.AddAttribute("data-markerclusterer-url", UrlPath("images/m", false));
            writer.AddAttribute("data-googlemapsv3", HttpUtility.UrlEncode(JsonConvert.SerializeObject(model), System.Text.Encoding.Default));
            writer.AddAttribute("data-map-id", "m" + mapId.ToString());
            writer.AddAttribute("data-dom-detection-type", ((int)domMonitorType).ToString());
            if (labelId != null)
            {
                writer.AddAttribute("data-label-id", labelId);
            }
            writer.AddAttribute("data-id", id);
            writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none");
            writer.AddAttribute(HtmlTextWriterAttribute.Class, nameof(Terratype) + '.' + nameof(GoogleMapsV3));
            writer.RenderBeginTag(HtmlTextWriterTag.Div);

            if (model.Icon != null && !HttpContext.Current.Items.Contains(guid))
            {
                HttpContext.Current.Items.Add(guid, true);
                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/Terratype.GoogleMapsV3.Renderer.js"));
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();


                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/markerclusterer.min.js"));
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();

                writer.AddAttribute(HtmlTextWriterAttribute.Src, GoogleScript(model));
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();
            }

            writer.AddAttribute(HtmlTextWriterAttribute.Id, id);
            writer.AddStyleAttribute(HtmlTextWriterStyle.Height, (height != null ? height : model.Height).ToString() + "px");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.RenderEndTag();
            writer.RenderEndTag();
        }
示例#3
0
 public override void GetHtml(HtmlTextWriter writer, int mapId, Models.Model model, string labelId = null, int?height = null,
                              string language = null, Options.DomMonitorTypes domMonitorType = Options.DomMonitorTypes.Javascript)
 {
     throw new NotImplementedException();
 }
示例#4
0
        /// <summary>
        /// Returns the Html that renders this map
        /// </summary>
        /// <param name="model"></param>
        /// <param name="height"></param>
        /// <param name="language"></param>
        /// <param name="label"></param>
        /// <returns></returns>
        public override void GetHtml(HtmlTextWriter writer, int mapId, Models.Model model, string labelId = null, int?height = null,
                                     string language    = null, Options.DomMonitorTypes domMonitorType = Options.DomMonitorTypes.Javascript,
                                     bool AutoShowLabel = false, bool AutoRecenterAfterRefresh         = false, bool AutoFit = false, string Tag = null)
        {
            const string guid        = "b72310d2-7041-4234-a6c5-6c5761dd708e";
            var          generatedId = nameof(Terratype) + nameof(GoogleMapsV3) + Guid.NewGuid().ToString();

            if (Tag == null)
            {
                Tag = generatedId;
            }

            writer.AddAttribute("data-markerclusterer-url", UrlPath("images/m", false));
            writer.AddAttribute("data-model", HttpUtility.UrlEncode(JsonConvert.SerializeObject(model), System.Text.Encoding.Default));
            writer.AddAttribute("data-map-id", mapId.ToString());
            writer.AddAttribute("data-dom-detection-type", ((int)domMonitorType).ToString());

            if (AutoShowLabel)
            {
                writer.AddAttribute("data-auto-show-label", true.ToString());
            }
            if (AutoRecenterAfterRefresh)
            {
                writer.AddAttribute("data-recenter-after-refresh", true.ToString());
            }
            if (AutoFit)
            {
                writer.AddAttribute("data-auto-fit", true.ToString());
            }
            if (labelId != null)
            {
                writer.AddAttribute("data-label-id", labelId);
            }
            writer.AddAttribute("data-id", generatedId);
            writer.AddAttribute("data-tag", Tag);
            writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none");
            writer.AddAttribute(HtmlTextWriterAttribute.Class, nameof(Terratype) + '.' + nameof(GoogleMapsV3));
            writer.RenderBeginTag(HtmlTextWriterTag.Div);

            if (model.Icon != null && !HttpContext.Current.Items.Contains(guid))
            {
                HttpContext.Current.Items.Add(guid, true);
#if DEBUG
                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/Terratype.GoogleMapsV3.Renderer.js"));
#else
                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/Terratype.GoogleMapsV3.Renderer.bundle.min.js"));
#endif
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();

#if DEBUG
                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/markerclusterer.min.js"));
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();
#endif
                writer.AddAttribute(HtmlTextWriterAttribute.Src, GoogleScript(model));
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();
            }

            writer.AddAttribute(HtmlTextWriterAttribute.Id, generatedId);
            writer.AddStyleAttribute(HtmlTextWriterStyle.Height, (height != null ? height : model.Height).ToString() + "px");
            writer.AddStyleAttribute("opacity", "0.01");
            writer.AddStyleAttribute("filter", "alpha(opacity=1)");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.RenderEndTag();
            writer.RenderEndTag();
        }
示例#5
0
        public override void Render(Guid guid, HtmlTextWriter writer, int mapId, Models.Model model, string labelId = null, int?height = null,
                                    string language    = null, Options.DomMonitorTypes domMonitorType = Options.DomMonitorTypes.Javascript,
                                    bool AutoShowLabel = false, bool AutoRecenterAfterRefresh         = false, bool AutoFit = false, string Tag = null)
        {
            var generatedId = nameof(Terratype) + nameof(LeafletV1) + Guid.NewGuid().ToString();

            if (Tag == null)
            {
                Tag = generatedId;
            }
            writer.AddAttribute("data-css-files", HttpUtility.UrlEncode(JsonConvert.SerializeObject(new string[]
            {
                UrlPath("css/leaflet.css"),
                UrlPath("css/MarkerCluster.css"),
                UrlPath("css/MarkerCluster.Default.css")
            }), System.Text.Encoding.Default));
            writer.AddAttribute("data-model", HttpUtility.UrlEncode(JsonConvert.SerializeObject(model), System.Text.Encoding.Default));
            writer.AddAttribute("data-map-id", mapId.ToString());
            writer.AddAttribute("data-dom-detection-type", ((int)domMonitorType).ToString());
            if (AutoShowLabel)
            {
                writer.AddAttribute("data-auto-show-label", true.ToString());
            }
            if (AutoRecenterAfterRefresh)
            {
                writer.AddAttribute("data-recenter-after-refresh", true.ToString());
            }
            if (AutoFit)
            {
                writer.AddAttribute("data-auto-fit", true.ToString());
            }

            if (labelId != null)
            {
                writer.AddAttribute("data-label-id", labelId);
            }
            writer.AddAttribute("data-id", generatedId);
            writer.AddAttribute("data-tag", Tag);
            writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none");
            writer.AddAttribute(HtmlTextWriterAttribute.Class, nameof(Terratype) + '.' + nameof(LeafletV1));
            writer.RenderBeginTag(HtmlTextWriterTag.Div);

            const string addScriptOnce = "53031a3b-dc6a-4440-a5e5-5060f691afd6";

            if (model.Icon != null && !HttpContext.Current.Items.Contains(addScriptOnce))
            {
                HttpContext.Current.Items.Add(addScriptOnce, true);
#if DEBUG
                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/Terratype.LeafletV1.Renderer.js"));
#else
                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/Terratype.LeafletV1.Renderer.bundle.js"));
#endif
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();

#if DEBUG
                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/leaflet-src.js"));
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();

                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/leaflet.markercluster-src.js"));
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();

                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/tileservers.js"));
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();
#endif
            }

            writer.AddAttribute(HtmlTextWriterAttribute.Id, generatedId);
            writer.AddStyleAttribute(HtmlTextWriterStyle.Height, (height != null ? height : model.Height).ToString() + "px");
            writer.AddStyleAttribute("opacity", "0.0");
            writer.AddStyleAttribute("filter", "alpha(opacity=0)");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.RenderEndTag();
            writer.RenderEndTag();
        }
示例#6
0
 public abstract void Render(Guid key, HtmlTextWriter writer, int id, Models.Model model, string labelId = null, int?height  = null, string language = null,
                             Options.DomMonitorTypes domMonitorType = Options.DomMonitorTypes.Javascript, bool AutoShowLabel = false,
                             bool AutoRecenterAfterRefresh          = false, bool AutoFit = false, string Tag = null);
示例#7
0
        /// <summary>
        /// Returns the Html that renders this map
        /// </summary>
        /// <param name="model"></param>
        /// <param name="height"></param>
        /// <param name="language"></param>
        /// <param name="label"></param>
        /// <returns></returns>
        public override void GetHtml(HtmlTextWriter writer, int mapId, Models.Model model, string labelId = null, int?height = null,
                                     string language    = null, Options.DomMonitorTypes domMonitorType = Options.DomMonitorTypes.Javascript,
                                     bool AutoShowLabel = false, bool AutoRecenterAfterRefresh         = false, bool AutoFit = false, string Tag = null)
        {
            const string guid        = "af82089e-e9b9-4b8b-9f2a-bed92279dc6b";
            var          generatedId = nameof(Terratype) + nameof(BingMapsV8) + Guid.NewGuid().ToString();

            if (Tag == null)
            {
                Tag = generatedId;
            }

            writer.AddAttribute("data-model", HttpUtility.UrlEncode(JsonConvert.SerializeObject(model), System.Text.Encoding.Default));
            writer.AddAttribute("data-map-id", mapId.ToString());
            writer.AddAttribute("data-dom-detection-type", ((int)domMonitorType).ToString());
            if (AutoShowLabel)
            {
                writer.AddAttribute("data-auto-show-label", true.ToString());
            }
            if (AutoRecenterAfterRefresh)
            {
                writer.AddAttribute("data-recenter-after-refresh", true.ToString());
            }
            if (AutoFit)
            {
                writer.AddAttribute("data-auto-fit", true.ToString());
            }
            if (labelId != null)
            {
                writer.AddAttribute("data-label-id", labelId);
            }
            writer.AddAttribute("data-id", generatedId);
            writer.AddAttribute("data-tag", Tag);
            writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none");
            writer.AddAttribute(HtmlTextWriterAttribute.Class, nameof(Terratype) + '.' + nameof(BingMapsV8));
            writer.RenderBeginTag(HtmlTextWriterTag.Div);

            if (model.Icon != null && !HttpContext.Current.Items.Contains(guid))
            {
                HttpContext.Current.Items.Add(guid, true);
#if DEBUG
                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/Terratype.BingMapsV8.Renderer.js"));
#else
                writer.AddAttribute(HtmlTextWriterAttribute.Src, UrlPath("scripts/Terratype.BingMapsV8.Renderer.min.js"));
#endif
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();

                writer.AddAttribute(HtmlTextWriterAttribute.Src, BingScript(model));
                writer.AddAttribute("defer", "");
                writer.RenderBeginTag(HtmlTextWriterTag.Script);
                writer.RenderEndTag();
            }

            writer.WriteFullBeginTag("style");

            writer.Write('#');
            writer.Write(generatedId);
            writer.WriteLine(" .switchSlot.labelToggle {display:none;}");


            var provider = model.Provider as Terratype.Providers.BingMapsV8;
            if (provider.Variety.Basic == false || (provider.Variety.Basic == true && provider.PredefineStyling == "ordnanceSurvey"))
            {
                writer.Write('#');
                writer.Write(generatedId);
                writer.WriteLine(" .slot.road {display:none;}");
            }
            if (provider.Variety.Basic == false || (provider.Variety.Basic == true && provider.PredefineStyling != "ordnanceSurvey"))
            {
                writer.Write('#');
                writer.Write(generatedId);
                writer.WriteLine(" .slot.ordnanceSurvey {display:none;}");
            }
            if (provider.Variety.Satellite == false)
            {
                writer.Write('#');
                writer.Write(generatedId);
                writer.WriteLine(" .slot.aerial {display:none;}");
            }
            if (provider.Variety.StreetView == false)
            {
                writer.Write('#');
                writer.Write(generatedId);
                writer.WriteLine(" .slot.streetside {display:none;}");
            }
            if (provider.Variety.Basic == false && provider.Variety.Satellite == false && provider.Variety.StreetView == true)
            {
                writer.Write('#');
                writer.Write(generatedId);
                writer.WriteLine(" .streetsideExit {display:none;}");
            }
            if (provider.Breadcrumb.Enable == false)
            {
                writer.Write('#');
                writer.Write(generatedId);
                writer.WriteLine(" streetsideText {display:none;}");
            }
            writer.WriteEndTag("style");

            writer.AddStyleAttribute(HtmlTextWriterStyle.Height, (height != null ? height : model.Height).ToString() + "px");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.AddAttribute(HtmlTextWriterAttribute.Id, generatedId);
            writer.AddStyleAttribute("opacity", "0.0");
            writer.AddStyleAttribute("filter", "alpha(opacity=0)");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderEndTag();
        }
示例#8
0
 public abstract void GetHtml(HtmlTextWriter writer, int id, Models.Model model, string labelId = null, int?height = null, string language = null,
                              Options.DomMonitorTypes domMonitorType = Options.DomMonitorTypes.Javascript);