【发布时间】:2016-09-15 13:02:31
【问题描述】:
我正在尝试接收特定位置的地图图像。
所以首先,我把名字翻译成经度和纬度。 这是有效的,由以下代码完成:
string singleLocation = streamReader.ReadLine();
Console.WriteLine(singleLocation);
var requestUri = string.Format("http://maps.googleapis.com/maps/api/geocode/xml?address={0}&sensor=false", Uri.EscapeDataString(singleLocation));
var request = WebRequest.Create(requestUri);
var response = request.GetResponse();
var xdoc = XDocument.Load(response.GetResponseStream());
var result = xdoc.Element("GeocodeResponse").Element("result");
var locationElement = result.Element("geometry").Element("location");
var lat = locationElement.Element("lat");
var lng = locationElement.Element("lng");
var lat2 = lat.Value;
lat2 = lat2.Replace('.', ',');
double latitude;
double.TryParse(lat2, out latitude);
var lng2 = lng.Value;
lng2 = lng2.Replace('.', ',');
double longitude;
double.TryParse(lng2, out longitude);
Console.WriteLine(latitude + " " + longitude);
然后我尝试接收特定位置的地图图像。而这部分工作不正常。我不知道如何处理响应。
var requestUri2 = string.Format(
"https://maps.googleapis.com/maps/api/staticmap?center={0}&zoom={1}&size={2}x{3}&maptype=roadmap",
Uri.EscapeDataString(singleLocation),
Uri.EscapeDataString(5.ToString()),
Uri.EscapeDataString(640.ToString()),
Uri.EscapeDataString(640.ToString()));
var request2 = WebRequest.Create(requestUri2);
var response2 = request2.GetResponse();
var map = response2.GetResponseStream();
应用程序必须只做不需要漂亮或复杂过程的工作,如果不需要,也不要使用好的包装器。我只想将此地图保存到 jpg 或 png 等文件中。
编辑: 解决方案在这里: How to use httpwebrequest to pull image from website to local file
【问题讨论】:
标签: c# google-maps