2016-03-25 16 views
2

Ich weiß, diese Art von Fragen vor gefragt sind ... aber ich kann es herausfinden ... Ich mag dieses OS Fragen gelesen haben link1 und link2Cant erhalten Temperatur in Grad Celsius

Nun, ich eine Wettervorhersage App entwickle und dafür benutze ich yahoo weather api.

Ich benutze diese URL für Antwort

String url = "https://query.yahooapis.com/v1/public/yql?q=select * from weather.forecast where woeid="+woeid+ 
       " and u='c'&format=xml&env=store://datatables.org/alltableswithkeys"; 

     url = url.replace(" ","%20"); 

und ich erhalte diese Antwort

<?xml version="1.0" encoding="UTF-8"?> 
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" 
    yahoo:count="1" yahoo:created="2016-03-25T12:45:44Z" yahoo:lang="en-US"> 
    <results> 
     <channel> 
      <yweather:units 
       xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
       distance="mi" pressure="in" speed="mph" temperature="F"/> 
      <title>Yahoo! Weather - Ahmedabad, GJ, IN</title> 
      <link>http://us.rd.yahoo.com/dailynews/rss/weather/Country__Country/*https://weather.yahoo.com/country/state/city-2295402/</link> 
      <description>Yahoo! Weather for Ahmedabad, GJ, IN</description> 
      <language>en-us</language> 
      <lastBuildDate>Fri, 25 Mar 2016 06:16 PM IST</lastBuildDate> 
      <ttl>60</ttl> 
      <yweather:location 
       xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
       city="Ahmedabad" country="India" region=" GJ"/> 
      <yweather:wind 
       xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
       chill="99" direction="315" speed="11"/> 
      <yweather:atmosphere 
       xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
       humidity="20" pressure="1003.0" rising="0" visibility="16.1"/> 
      <yweather:astronomy 
       xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
       sunrise="6:38 am" sunset="6:53 pm"/> 
      <image> 
       <title>Yahoo! Weather</title> 
       <width>142</width> 
       <height>18</height> 
       <link>http://weather.yahoo.com</link> 
       <url>http://l.yimg.com/a/i/brand/purplelogo//uh/us/news-wea.gif</url> 
      </image> 
      <item> 
       <title>Conditions for Ahmedabad, GJ, IN at 05:30 PM IST</title> 
       <geo:lat xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">23.030809</geo:lat> 
       <geo:long xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">72.591751</geo:long> 
       <link>http://us.rd.yahoo.com/dailynews/rss/weather/Country__Country/*https://weather.yahoo.com/country/state/city-2295402/</link> 
       <pubDate>Fri, 25 Mar 2016 05:30 PM IST</pubDate> 
       <yweather:condition 
        xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
        code="30" date="Fri, 25 Mar 2016 05:30 PM IST" 
        temp="98" text="Partly Cloudy"/> 
       <yweather:forecast 
        xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
        code="28" date="25 Mar 2016" day="Fri" high="98" 
        low="74" text="Mostly Cloudy"/> 
       <yweather:forecast 
        xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
        code="30" date="26 Mar 2016" day="Sat" high="101" 
        low="77" text="Partly Cloudy"/> 
       <yweather:forecast 
        xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
        code="32" date="27 Mar 2016" day="Sun" high="100" 
        low="76" text="Sunny"/> 
       <yweather:forecast 
        xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
        code="30" date="28 Mar 2016" day="Mon" high="101" 
        low="71" text="Partly Cloudy"/> 
       <yweather:forecast 
        xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
        code="34" date="29 Mar 2016" day="Tue" high="103" 
        low="71" text="Mostly Sunny"/> 
       <yweather:forecast 
        xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
        code="32" date="30 Mar 2016" day="Wed" high="102" 
        low="73" text="Sunny"/> 
       <yweather:forecast 
        xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
        code="32" date="31 Mar 2016" day="Thu" high="99" 
        low="75" text="Sunny"/> 
       <yweather:forecast 
        xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
        code="34" date="01 Apr 2016" day="Fri" high="97" 
        low="73" text="Mostly Sunny"/> 
       <yweather:forecast 
        xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
        code="26" date="02 Apr 2016" day="Sat" high="99" 
        low="76" text="Cloudy"/> 
       <yweather:forecast 
        xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
        code="26" date="03 Apr 2016" day="Sun" high="101" 
        low="80" text="Cloudy"/> 
       <description>&lt;![CDATA[&lt;img src="http://l.yimg.com/a/i/us/we/52/30.gif"/&gt; 
&lt;BR /&gt; 
&lt;b&gt;Current Conditions:&lt;/b&gt; 
&lt;BR /&gt;Partly Cloudy 
&lt;BR /&gt; 
&lt;BR /&gt; 
&lt;b&gt;Forecast:&lt;/b&gt; 
&lt;BR /&gt; Fri - Mostly Cloudy. High: 98Low: 74 
&lt;BR /&gt; Sat - Partly Cloudy. High: 101Low: 77 
&lt;BR /&gt; Sun - Sunny. High: 100Low: 76 
&lt;BR /&gt; Mon - Partly Cloudy. High: 101Low: 71 
&lt;BR /&gt; Tue - Mostly Sunny. High: 103Low: 71 
&lt;BR /&gt; 
&lt;BR /&gt; 
&lt;a href="http://us.rd.yahoo.com/dailynews/rss/weather/Country__Country/*https://weather.yahoo.com/country/state/city-2295402/"&gt;Full Forecast at Yahoo! Weather&lt;/a&gt; 
&lt;BR /&gt; 
&lt;BR /&gt; 
(provided by &lt;a href="http://www.weather.com" &gt;The Weather Channel&lt;/a&gt;) 
&lt;BR /&gt; 
]]&gt;</description> 
       <guid isPermaLink="false"/> 
      </item> 
     </channel> 
    </results> 
</query> 

als Antwort ... Ich bin nicht Temp immer in Celsius ... plese help me

+0

nur Leerzeichen mit "% 20" ersetzen kann nicht genug sein: eine ordnungsgemäße 'UrlEncode' – dlatikay

+0

Ich habe versucht, dass auch ... aber kein Glück –

+1

schwierig zu reproduzieren, gibt der Anruf eine HTTP-Antwort 400 die meiste Zeit zurück : Unter https://developer.yahoo.com/weather wird angegeben, dass der öffentliche Endpunkt, den Sie verwenden, https://query.yahooapis.com/v1/public, seit dem 15. März 2016 nicht mehr unterstützt wird und jetzt angezeigt wird erzwinge OAuth an einer anderen Adresse. – dlatikay

Antwort

0

Es scheint, dass die Rücklauftemperatur in Fahrenheit ist.

Sie können dies in Celsius konvertieren die folgende Formel:

C = (F-32) x 5/9

+0

ja ich kann ... aber ich will Ergebnis in Celsius ... wie in yahoo Entwicklungsseite erwähnt –

1

EDIT

Ich war Ihre Position auf der Konsole versuchen, und Sie erhalten Celsius in der Vorhersage und aktuellen Bedingungen, wenn Sie diese Elemente anfordern. Ich habe versucht:

select item.forecast from weather.forecast where woeid = 2295402 and u='c' 

, die eine 10-Tage-Prognose in Celsius zurückgegeben. Die URL wäre

https://query.yahooapis.com/v1/public/yql?q=select%20item.forecast%20from%20weather.forecast%20where%20woeid%20%3D%202295402%20and%20u%3D'c'&format=xml&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys 

Ändern item.forecast zu item.conditions macht das gleiche mit den aktuellen Bedingungen. Ich habe nochmal versucht * auszuwählen und es gibt den Fahrenheit Fehler. Vielleicht könnte Ihnen die Verwendung separater Abfragen für diese Elemente helfen?