2016-05-18 13 views
0

特定の場所の地図画像を受信しようとしています。アドレスミスでGoogleマップ画像を取得するC#

まず、私はその名前を経度と緯度に翻訳しました。 これは働いていると、以下のコードによって行われます。

   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(); 

アプリケーションは、ちょうどそれはかなりになることはありませあるいは複雑な工程を行う、どちらもそれが必要ない場合は良いwrapersを使用する必要がdoesntの仕事をする必要があります。私はちょうどjpgやpngのようなファイルにこのマップを保存したいと思います。

EDIT: ソリューションはここにある: How to use httpwebrequest to pull image from website to local file

答えて

2

私はこのコードを使用します。 「mapa」バイト[]は、必要な場所に保存または表示できます。あなたはあなたの値を使うべきです。

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

関連する問題