internal Uri ToUri()
{
EnsureSensor();
if(Location == null) throw new InvalidOperationException("Location property is not set.");
var qsb = new Internal.QueryStringBuilder();
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0);
qsb.Append("location", Location.GetAsUrlParameter())
.Append("timestamp", (Timestamp.ToUniversalTime() - epoch).TotalSeconds.ToString())
.Append("language", Language)
.Append("sensor", (Sensor.Value.ToString().ToLowerInvariant()));
var url = "json?" + qsb.ToString();
return new Uri(url, UriKind.Relative);
}