先上效果图,看图说话

效果图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所在城市名

$(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相关依赖

    <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:虽然使用是免费的,但是每天有使用次数限制
~唉~,果然世界上没有免费的午餐滴