public override void ExecuteResult(ControllerContext context) { if (context == null) { throw new ArgumentNullException("context"); } var response = context.HttpContext.Response; response.ContentType = "application/json"; var json = new JsonObjectBuilder(); json.Append("code", 200); if (this.Pushpins != null) { if (this.Pushpins.Count() > 0) { var pushpinsJson = new JsonArrayBuilder(); foreach (var pin in this.Pushpins) { pushpinsJson.Add(pin); } json.Append("pushpins", pushpinsJson); } } if (this.Polylines != null) { if (this.Polylines.Count() > 0) { var polylinesJson = new JsonArrayBuilder(); foreach (var pin in this.Polylines) { polylinesJson.Add(pin); } json.Append("polylines", polylinesJson); } } if (this.Polygons != null) { if (this.Polygons.Count() > 0) { var polygonsJson = new JsonArrayBuilder(); foreach (var pin in this.Polygons) { polygonsJson.Add(pin); } json.Append("polygons", polygonsJson); } } response.Write(json.Render()); }
protected virtual void RenderObjectInitializer(TextWriter writer) { writer.Write("var {0} = null;", this.MapID); writer.Write("$(function(){"); writer.Write("{0}=new {1}('{2}',", this.MapID, this._javascriptObject, this.ContainerID); var json = new JsonObjectBuilder(this.CustomInitializerOptions); json.Append("id", string.Format("'{0}'", this.MapID)); if (this.CenterLatitude.HasValue && this.CenterLongitude.HasValue) { json.Append("lat", this.CenterLatitude).Append("lng", this.CenterLongitude); } if (this.ZoomLevel.HasValue) { json.Append("zoom", this.ZoomLevel); } if (this.IsFixed.HasValue) { json.Append("fixed", (this.IsFixed.Value ? "true" : "false")); } var resolvedMapType = this.ResolveMapType(); if (resolvedMapType != null) { json.Values["maptype"] = resolvedMapType; } if (this._loadScripts.Count > 0) { json.Append("onLoad", string.Format("{0}_onLoadMap", this.ContainerID)); } if (this.Pushpins.Count > 0) { json.Append("pushpins", this.RenderPushpins()); } if (this.Polylines.Count > 0) { json.Append("polylines", this.RenderPolylines()); } if (this.Polygons.Count > 0) { json.Append("polygons", this.RenderPolygons()); } if (this.DynamicMapOptions != null) { json.Append("dynamicmap", this.DynamicMapOptions.Render()); } writer.Write(json.Render()); writer.Write(");"); writer.Write("});"); }