1、需求:
前两天接到boss给我的一个任务,需要根据经纬度信息统计省份分布,boss给了我一张excel,包含数据包括:经度、纬度、使用次数,想要我统计每一个省份的次数之后
2、解决思路:
通过文件读取方式获得对应经度、纬度、使用次数数据,,然后调用阿里云或者高德地图的API就可以完成这一工作,思路很清晰,于是下面直接开始上代码
3、工具类:
StringToJsonUtil.java
**
* 通过工具类去获取String里面包含的数据信息
* User: yinkailong
* Date: 2018/8/10
*/
public class StringToJsonUtil {
public static String StringToGetValue(String address){
String detailAddress = "";
//调用阿里云接口返回数据格式
/**res{
"queryLocation":[28.76817,121.501497],"addrList":[{
"type":"poi","status":1,"name":"尤氏大药房(杜东药店)","id":"ANB02400T4ZW","admCode":"331082","admName":"浙江省,台州市,临海市,","addr":"杜桥解放街96号","nearestPoint":[121.50180,28.76764],"distance":61.400}]}*/
//进行转化获取值
JSONObject addressList = JSONObject.fromObject(address);
//次处需要判断转化之后类型是否是Object 否则会报错
if (addressList != null && !addressList.isNullObject()){
//System.out.println("addressList" + addressList);
//根据addrList 获取list值 //得到json数组
JSONArray addressArray = JSONArray.fromObject(addressList.getString("addrList"));
JSONObject addressObject = JSONObject.fromObject(addressArray.get(0));
//根据admName 获取省、市、区
String admName = addressObject.getString("admName");
//获取店铺名称
String name = addressObject.getString("name");
//获取门牌号地址
String addr = "";
if (addressObject.containsKey("addr")){
addr = addressObject.getString("addr");
}
//进行拼接得到详细地址
detailAddress = admName + name + addr;
//将查询的地址输出 过滤掉 ,
//System.out.println(detailAddress.replace(",", ""));
}
return detailAddress;
}
}
根据纬度和经度调用阿里云API 获取详细地址
AddressUtil.java
/**
* 调取阿里云的API
* User: yinkailong
* Date: 2018/8/7
*/
public class AddressUtil {
/**
* 调取阿里云的API
* 通过 poi 经纬度查询地址数据
*
*