public Uri ToUri()
{
EnsureSensor(true);
string formatStr = null;
switch(this.Format)
{
case GMapsImageFormats.Unspecified: break;
case GMapsImageFormats.JPGbaseline: formatStr = "jpg-baseline"; break;
default: formatStr = this.Format.ToString().ToLower(); break;
}
string maptypeStr = null;
switch(this.MapType)
{
case MapTypes.Unspecified: break;
default:
maptypeStr = this.MapType.ToString().ToLower();
break;
}
string zoomStr = null;
if(this.Zoom != null)
zoomStr = this.Zoom.ToString();
string centerStr = null;
if(this.Center != null)
centerStr = this.Center.GetAsUrlParameter();
QueryStringBuilder qs = new QueryStringBuilder()
.Append("center", centerStr)
.Append("zoom", zoomStr)
.Append("size", string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0}x{1}", Size.Width, Size.Height))
.Append("scale", Scale == null ? (string)null : Scale.Value.ToString())
.Append("format", formatStr)
.Append("maptype", maptypeStr)
.Append("language", Language)
.Append("region", this.Region)
.Append(GetMarkersStr())
.Append(GetPathsStr())
.Append("visible", GetVisibleStr())
.Append("sensor", (Sensor == true ? "true" : "false"));
var url = "staticmap?" + qs.ToString();
return new Uri(BaseUri, new Uri(url, UriKind.Relative));
}