package com.okhiking;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.DefaultHttpClient;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import android.util.Log;
public class GoogleWeather {
public String getWeatherData(Integer latitude, Integer longtitude)
throws ClientProtocolException, IOException,
ParserConfigurationException, FactoryConfigurationError,
SAXException {
String wheatherResult = null;
// String
// url="http://www.google.com/ig/api?hl=zh_cn&weather=,,,"+latitude+","+longtitude;
String url = "http://www.google.com/ig/api?weather=,,," + latitude
+ "," + longtitude;
DefaultHttpClient client = new DefaultHttpClient();
HttpUriRequest Request = new HttpGet(url);
HttpResponse Response = client.execute(Request);
HttpEntity Entity = Response.getEntity();
InputStream stream = Entity.getContent();
InputStreamReader in = new InputStreamReader(stream, "GBK");
DocumentBuilder Builder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
Document doc = Builder.parse(new InputSource(in));
NodeList n = doc.getElementsByTagName("current_conditions");
Log.d("log", "Node Length=" + n.getLength());
for (int i = 0; i < n.getLength(); i++)// 遍列current_condition所有节点
// 比较简单的解析xml的方法
{
// 获取节点的天气数据
String condition = n.item(i).getChildNodes().item(0)
.getAttributes().item(0).getNodeValue();
String tempF = n.item(i).getChildNodes().item(1).getAttributes()
.item(0).getNodeValue();
String tempC = n.item(i).getChildNodes().item(2).getAttributes()
.item(0).getNodeValue();
String humidity = n.item(i).getChildNodes().item(3).getAttributes()
.item(0).getNodeValue();
String wind_condition = n.item(i).getChildNodes().item(5)
.getAttributes().item(0).getNodeValue();
wheatherResult = "Condition:" + condition + "\n" + "TEM:" + tempF + " F\n"
+ "TEM:" + tempC + "℃\n" + humidity + "\n" + wind_condition;
}
// NodeList nforecast_conditions = doc
// .getElementsByTagName("forecast_conditions");
//
// Log.d("log", "Node2 Length=" + nforecast_conditions.getLength());
//
// for (int i = 0; i < nforecast_conditions.getLength(); i++)//
// 遍列current_condition所有节点
// {
// // 获取节点的天气数据
// String week = nforecast_conditions.item(i).getChildNodes().item(0)
// .getAttributes().item(0).getNodeValue();
// String low = nforecast_conditions.item(i).getChildNodes().item(1)
// .getAttributes().item(0).getNodeValue();
// String high = nforecast_conditions.item(i).getChildNodes().item(2)
// .getAttributes().item(0).getNodeValue();
// wheatherResult = wheatherResult + "condition:" + week + "\n" + low
// + " 摄氏度\n" + high + "摄氏度\n";
// }
// Log.d("log", "sTemp=" + wheatherResult);
return wheatherResult;
}
}
分享到:
相关推荐
根据提供的信息,我们可以总结出以下有关“中国天气网城市代码及IP地址库、经纬度查询地址(逆地理位置解析)或天气等相关API”的知识点: ### 一、城市代码与天气服务 #### 1.1 中国天气网提供的服务概述 中国...
在这个场景中,我们关注的是如何利用XML来获取并解析谷歌天气预报的信息。谷歌提供了API服务,允许开发者通过HTTP GET请求获取特定位置的天气数据,返回的数据格式通常是XML。 首先,我们需要了解XML的基本结构。...
在Web服务中,我们经常需要根据经纬度坐标来获取对应的城市名称,这在地图应用、定位服务、天气预报等场景中非常常见。本文将详细讨论如何通过百度Geocoding API实现这一功能,并探讨相关的技术知识。 **一、什么是...
总的来说,这个实例展示了如何利用谷歌天气API集成到一个简单的web应用中,提供天气信息查询功能。虽然天气预报的准确性可能因多种因素而有所波动,但这个API仍然为开发者提供了一个实用的工具,用于获取和展示全球...
在Android平台上,开发一个能够根据用户GPS位置获取天气信息的程序是一项常见的任务。这个程序的实现涉及到了Android系统的多个核心组件和技术,主要包括定位服务、网络请求、数据解析以及UI展示等。下面将详细讲解...
4. 气象预测:气象站的经纬度信息对于构建气候模型和预测天气至关重要。 四、相关技术 1. GPS接收器:能接收并解析GPS卫星信号,计算出设备的经纬度。 2. Web API:如Google Maps API、高德地图API等,提供了基于...
标题中的“google天气预报API .NET调用”指的是使用.NET框架来访问Google提供的天气预报服务。Google天气API允许开发者获取特定地理位置的实时和预测性天气信息,这些信息包括温度、湿度、风速、天气状况等。在.NET...
首先,Google提供了多个API,如Geocoding API用于地址转换为经纬度坐标,Geolocation API用于获取设备的位置信息,而Weather API则提供实际的天气数据。开发者通常会结合这些API,构建出一个完整的天气应用。 1. **...
开发者可以解析这些数据,在自己的应用中显示天气信息。 在实际应用中,这些API的使用需要遵循一些最佳实践。比如,要处理API调用的异步性,确保用户界面不被阻塞;为了防止API滥用,要合理控制请求频率,并使用...
在Android平台上开发一个简单的天气预报应用,涉及到许多关键的技术点,包括网络请求、JSON解析、UI设计以及数据存储。以下是对这些技术的详细说明: 1. **网络请求**:为了获取天气信息,开发者通常需要从远程...
通过上述知识点,我们可以推断,这个"简单的天气预报应用"项目是一个综合了Android开发基础、网络通信以及数据解析的实践案例,对于初学者来说,它是一个很好的学习资源,可以帮助理解如何构建一个实际的Android应用...
在IT行业中,开发一款“根据地点获取天气情况的小程序”是一项常见的任务,它涉及到网络请求、数据解析以及用户界面的设计。下面将详细讲解这个过程涉及的关键知识点。 首先,我们需要一个天气API来获取实时天气...
5. **地理位置API**:为了查询不同地方的天气,可能使用了Google Maps API或其他类似服务,获取经纬度信息后,再结合天气API进行查询。 6. **天气API**:例如OpenWeatherMap、AccuWeather等提供天气数据的服务,...
- 对于经纬度的处理,不能简单地去除小数点,因为某些较长的序列在去除小数点后可能无法正确获取天气信息。正确的做法是保留小数点后六位,然后将其转换为整数。例如,对于经纬度 `31.174165` 和 `121.433841`,...
通过以上步骤,你可以实现一个简单的天气预报软件,能够从 Google Weather API 获取天气信息并进行展示。这对于初学者来说是一个很好的实践项目,有助于加深对 Android 开发的理解以及提高 XML 解析的能力。
这涉及到地理编码(将地址转换为经纬度坐标)和反地理编码(将坐标转换为地址)的技巧,这可能需要Google Maps API或其他类似服务。 3. **前端界面设计**:应用的用户界面设计至关重要,需要考虑到易用性和美观性。...
数据解析是IT行业中一个至关重要的环节,...无论是查询天气还是获取经纬度,都能通过简单的API调用和解析实现。在实际项目中,这样的工具能大大提高开发效率,使我们更专注于业务逻辑,而非底层的数据传输和解析细节。
本文将详细解析如何利用Google Weather API来实现这一功能。 首先,了解`Android`:Android是由Google领导的开源操作系统,主要用于智能手机和平板电脑。它提供了一个丰富的开发环境,包括Android Studio,用于构建...
百度地图开放平台提供了一套API,其中包括地理编码服务,可以根据经纬度反向查询对应的地址信息,包括城市名。使用时,需要先在百度地图开放平台注册并获取API密钥,然后调用相应的HTTP接口,传入经纬度,返回的...
此外,考虑到用户体验,天气应用还可能有定位功能,需要用到Android的Location API获取用户的当前位置,然后根据经纬度查询对应的天气信息。还有可能提供通知服务,提醒用户天气变化。 最后,为了保证应用的可用性...