百度地图 根据IP获取当前位置,根据经纬度转化地址

java:

package com.example.address;

import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.Charset;
import org.apache.commons.lang.StringUtils;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.json.JSONException;
import org.json.JSONObject;

/**
 * Created By: hdx
 * Date: 2020-06-04 09:05
 */
public class address {


    private static String read(Reader rd) throws IOException {
        StringBuilder sb = new StringBuilder();
        int cp;
        while ((cp = rd.read()) != -1) {
            sb.append((char) cp);
        }
        return sb.toString();
    }

    public static JSONObject readJson(String url) throws IOException, JSONException {
        InputStream is = new URL(url).openStream();
        try {
            BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
            String jsonText = read(rd);
            JSONObject json = new JSONObject(jsonText);
            return json;
        } finally {
            is.close();
        }
    }

    public static void main(String[] args) throws IOException, JSONException {
        //这里调用百度的ip定位api服务 详见 http://api.map.baidu.com/lbsapi/cloud/ip-location-api.htm   ak 需要自己注册一下
        JSONObject json = readJson("http://api.map.baidu.com/location/ip?ak=gZOLCTs0kPxF5WQZWI3ZYBfuBc5ZX1HYv&coor=bd09ll&ip=47.xxx.xxx.110");
        System.out.println(json.toString());
        JSONObject json1 = readJson("http://api.map.baidu.com/geocoder?location=36.09928993,118.52766339&output=json&key=E4805d16x520de693a3fe707cdc962045");
        System.out.println(json1.toString());
    }
}

ak 和 key 不对,运行时 需要 自己去 http://api.map.baidu.com/lbsapi/cloud/ip-location-api.htm 创建 应用

ip需要填写公网ip

百度地址 :  http://lbsyun.baidu.com/apiconsole/key#/home

百度地图 根据IP获取当前位置,根据经纬度转化地址

 

pom 

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>com.vaadin.external.google</groupId>
    <artifactId>android-json</artifactId>
    <version>0.0.20131108.vaadin1</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>com.vaadin.external.google</groupId>
    <artifactId>android-json</artifactId>
    <version>0.0.20131108.vaadin1</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.6</version>
</dependency>