先上效果图,看图说话

效果图1

废话少说,直接撸教程

一、利用百度地图api自动获取当前ip所在城市名

1.登录百度开放平台,在控制台创建我的应用

效果图2

2.创建成功后,复制应用AK键

3.在项目页面引入百度地图片api

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的应用AK"></script>

4.编写JQ代码获取当前ip所在城市名

1
2
3
4
5
6
7
8
9
10
11
12
13
$(function () {

var myCity = new BMap.LocalCity();
var cityName = "";
myCity.get(function(data){
cityName = data.name;
if(cityName.indexOf("市") != -1){
cityName = cityName.substr(0,cityName.indexOf("市"));
}
getWeather(cityName);
});

})

二、通过WebService调用天气预报接口

1.Maven导入WebService相关依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!-- WebService相关依赖-->
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>javax.xml.rpc</groupId>
<artifactId>javax.xml.rpc-api</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.2</version>
</dependency>
<dependency>
<groupId>axis</groupId>
<artifactId>axis-wsdl4j</artifactId>
<version>1.5.1</version>
</dependency>

2.根据天气预报接口wsdl文件生成客户端代码

wsdl文件地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

将wsdl文件保存至项目

对wsdl文件进行编译后,利用IDEA工具自动生成客户端代码集

效果图3
效果图4

自动生成以下文件

效果图5
(如果自动生成不了,请按以下操作尝试几次)

效果图6

三、前端AJAX请求调用本地项目天气预报客户端数据

1.后台调用客户端天气预报方法

效果图7

2.字符串数组weatherInfo封装了全部天气预报信息,用户可定制自已需要的天气信息

效果图8

ps:虽然使用是免费的,但是每天有使用次数限制
,果然世界上没有免费的午餐滴

7-小康博客