使用百度地图api根据网吧名称获取经纬度信息

http://lbs.baidu.com/index.php?title=webapi/guide/webservice-geocoding

1.到百度地图获取请求连接

地理编码
http://api.map.baidu.com/geocoding/v3/?address=北京市海淀区上地十街10号&output=json&ak=您的ak&callback=showLocation //GET请求
注意:当前为V3.0版本接口文档,V2.0及以前版本自2019.6.18起新用户无法使用。老用户仍可继续使用V2.0及以前版本请求实现逆地理编码服务,为保障用户体验,建议您尽快迁移到V3.0版本。

请求参数
参数名	参数含义	类型	举例	默认值	是否必须
address	待解析的地址。最多支持84个字节。
可以输入两种样式的值,分别是: 
1、标准的结构化地址信息,如北京市海淀区上地十街十号 【推荐,地址结构越完整,解析精度越高】
2、支持“*路与*路交叉口”描述方式,如北一环路和阜阳路的交叉路口
第二种方式并不总是有返回结果,只有当地址库中存在该地址描述时才有返回。	string	北京市海淀区上地十街10号	无	是
city	地址所在的城市名。用于指定上述地址所在的城市,当多个城市都有上述地址时,该参数起到过滤作用,但不限制坐标召回城市。	string	北京市	无
否
ret_coordtype	可选参数,添加后返回国测局经纬度坐标或百度米制坐标 坐标系说明	string	gcj02ll(国测局坐标)、bd09mc(百度墨卡托坐标)	bd09ll(百度经纬度坐标)	否
ak	用户申请注册的key,自v2开始参数修改为“ak”,之前版本参数为“key”申请ak	string	
无	是
sn	若用户所用ak的校验方式为sn校验时该参数必须 
sn生成	string	
无	否
output	输出格式为json或者xml	string	json或xml	xml	否
callback	将json格式的返回值通过callback函数返回以实现jsonp功能	string	callback=showLocation(JavaScript函数名)	无	否
返回结果参数
名称
含义	类型
status
返回结果状态值, 成功返回0,其他值请查看下方返回码状态表。	int
location
经纬度坐标	object

lat	纬度值	float

lng	经度值	float
precise
位置的附加信息,是否精确查找。1为精确查找,即准确打点;0为不精确,即模糊打点。	int
confidence
描述打点绝对精度(即坐标点的误差范围)。
confidence=100,解析误差绝对精度小于20m;
confidence≥90,解析误差绝对精度小于50m;
confidence≥80,解析误差绝对精度小于100m;
confidence≥75,解析误差绝对精度小于200m;
confidence≥70,解析误差绝对精度小于300m;
confidence≥60,解析误差绝对精度小于500m;
confidence≥50,解析误差绝对精度小于1000m;
confidence≥40,解析误差绝对精度小于2000m;
confidence≥30,解析误差绝对精度小于5000m;
confidence≥25,解析误差绝对精度小于8000m;
confidence≥20,解析误差绝对精度小于10000m;
int
comprehension	描述地址理解程度。分值范围0-100,分值越大,服务对地址理解程度越高(建议以该字段作为解析结果判断标准);
当comprehension值为以下值时,对应的准确率如下:
comprehension=100,解析误差100m内概率为91%,误差500m内概率为96%;
comprehension≥90,解析误差100m内概率为89%,误差500m内概率为96%;
comprehension≥80,解析误差100m内概率为88%,误差500m内概率为95%;
comprehension≥70,解析误差100m内概率为84%,误差500m内概率为93%;
comprehension≥60,解析误差100m内概率为81%,误差500m内概率为91%;
comprehension≥50,解析误差100m内概率为79%,误差500m内概率为90%//解析误差:地理编码服务解析地址得到的坐标位置,与地址对应的真实位置间的距离。	int
level
能精确理解的地址类型,包含:UNKNOWN、国家、省、城市、区县、乡镇、村庄、道路、地产小区、商务大厦、政府机构、交叉路口、商圈、生活服务、休闲娱乐、餐饮、宾馆、购物、金融、教育、医疗 、工业园区 、旅游景点 、汽车服务、火车站、长途汽车站、桥 、停车场/停车区、港口/码头、收费区/收费站、飞机场 、机场 、收费处/收费站 、加油站、绿地、门址	string

服务状态码
返回码	英文描述	定义	常见原因
0	ok	正常	服务请求正常召回
1	
服务器内部错误

2	Parameter Invalid	请求参数非法	必要参数拼写错误或漏传(如query和tag请求中均未传入)
3	Verify Failure	权限校验失败	
4	Quota Failure	配额校验失败	服务当日调用次数已超限,请前往API控制台提升(请优先进行开发者认证)
5	AK Failure	ak不存在或者非法	未传入ak参数;ak已被删除(可前往回收站恢复);
101

服务禁用
请到控制台检验您的AK是否有该服务权限
102

不通过白名单或者安全码不对

2xx

无权限

3xx

配额错误

2.通过代码读取本地网吧名字,循环调用api返回数据

public class Test {
    public static void main(String[] args) throws Exception {

        String name = getStr("C:\\Users\\Administrator\\Desktop\\wbname.txt");
        String str = name.substring(0, name.length() - 1);
        String[] split = str.split(",");
        ArrayList list = Lists.newArrayList();
        Arrays.asList(split).forEach(s -> {
            String s1 = HttpUtil.get("http://api.map.baidu.com/geocoding/v3/?output=json&callback=showLocation&address="+s+"&ak=q429K71bSyU58tt4fL31H1qEFyOKl3Kz&city=赣州市");
            String s2 = s1.replace("showLocation&&showLocation(", "");
            String s3 = s2.substring(0, s2.length() - 1);
            HashMap map = JSONObject.parseObject(s3, HashMap.class);
            JSONObject result = (JSONObject) map.get("result");
            JSONObject location = (JSONObject) result.get("location");
            String lng = location.get("lng").toString();
            String lat = location.get("lat").toString();
            list.add(s+ "," + lng +","+ lat);
        });
        writeFileContext(list,"C:\\Users\\Administrator\\Desktop\\wb.txt");
    }
    /**
     * 将list按行写入到txt文件中
     * @param strings
     * @param path
     * @throws Exception
     */
    public static void writeFileContext(List strings, String path) throws Exception {
        File file = new File(path);
        //如果没有文件就创建
        if (!file.isFile()) {
            file.createNewFile();
        }
        BufferedWriter writer = new BufferedWriter(new FileWriter(path));
        for (String l:strings){
            writer.write(l + "\r\n");
        }
        writer.close();
    }

    /**
     * 读文件
     * @param readPath
     * @return
     * @throws IOException
     */
    public static String getStr(String readPath) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader(new File(readPath)));
        String lineRead;
        StringBuilder sb = new StringBuilder();
        while ((lineRead = br.readLine()) != null){
            sb.append(lineRead).append(",");
        }
        br.close();

        return sb.toString();
    }
}

你可能感兴趣的:(技术使用总结,百度,java)