【问题标题】:getting google map image by address mistake C#通过地址错误获取谷歌地图图像C#
【发布时间】: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


    【解决方案1】:

    我使用此代码。您可以将“mapa”字节 [] 保存或显示在您想要的位置。 en 纬度和经度,你必须使用你的价值观。

    byte[] mapa                
    string url = @"http://maps.googleapis.com/maps/api/staticmap?center=" + latitud +"," + longitud + "&zoom=15&size=504x400&maptype=roadmap&markers=color:red%7Clabel:%7C" + latitud + "," + longitud + "&sensor=false";
    
                    using (WebClient wc = new WebClient())
                    {
                        mapa = wc.DownloadData(url);
                    }
    

    之后可以查看http://stackoverflow.com/questions/8946846/converting-a-byte-array-to-png-jpg

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-09
      • 2017-08-01
      相关资源
      最近更新 更多