时间:2022-04-29 09:06:52来源:网络整理
前言:
我们现在要做的功能是根据IP地址获取当前地理位置,这是一个Web服务API。获取的位置信息一般都是城市级别的,不是很准确。
(1)开发者准备工作:
需要登录百度地图的api,点击web service API。
开发文档地址:
请求了两个 URLip定位获取当前城市,
http://api.map.baidu.com/location/ip?ak=您的AK&ip=您的IP&coor=bd09ll //HTTP协议
https://api.map.baidu.com/location/ip?ak=您的AK&ip=您的IP&coor=bd09ll //HTTPS协议
请求参数
需要注意的是:ak是必需的,其他几个参数是可选的。
(2)如何申请AK
地址:
首先,您需要点击进入我的应用程序并创建一个新应用程序。我已经在下面构建了它。
点击确定。
需要注意的是:ip白名单不推荐使用0.0.0.0/0可以使用特定的ip名。
(3)代码调用
我将复制得到的json,看看如何解析这个json。我用的是阿里巴巴下的jsonObject,所以需要参考jar包。
{
"address": "CN|上海|上海|None|CHINANET|0|0",
"content": {
"address_detail": {
"province": "上海市",
"city": "上海市",
"street": "",
"district": "",
"street_number": "",
"city_code": 289
},
"address": "上海市",
"point": {
"x": "13524118.26",
"y": "3642780.37"
}
},
"status": 0
}
(4)代码
package com.bos.test;
import com.alibaba.fastjson.JSONObject;
import com.bos.util.SendRequest;
public class MenuTest {
public static void main(String[] args) {
String url = "http://api.map.baidu.com/location/ip?&ak=lGhonqkkoUGZurajdlpL1QqciA215kkq";
JSONObject jsonObject = SendRequest.sendGet2(url);
System.out.println(jsonObject);
//获取content中的值
JSONObject contentJsonObject = jsonObject.getJSONObject("content");
System.out.println("contentJsonObject-------"+contentJsonObject);
//获取详细地址数据
JSONObject addressDetailJsonObject = contentJsonObject.getJSONObject("address_detail");
String address = addressDetailJsonObject.getString("province");
String city = addressDetailJsonObject.getString("city");
System.out.println("address_detail-------"+addressDetailJsonObject);
System.out.println("address-------"+address);
System.out.println("city-------"+city);
String address2 = contentJsonObject.getString("address");
System.out.println("address2-----"+address2);
JSONObject pointJsonObject = contentJsonObject.getJSONObject("point");
String x = pointJsonObject.getString("x");
String y = pointJsonObject.getString("y");
System.out.println("x----"+x);
System.out.println("y----"+y);
}
}
上面做是可以的,但是如果调用次数过多,就会报异常。这时候就需要申请开发者资质认证了。我会先申请个人开发者。
额外奖励:
上面的文档可以得到当前城市的中心点,比如我在上海,我得到上海等。如果想要精确的信息,可以根据返回的纬度做一步查询和经度。
文件地址:
需要注意的是检查你是否有反向地理编码权限。具体操作图如下。 ,
查询应用是否有反向地理编码的权限。和我一样,没有ip定位获取当前城市,点击申请权限。
点击申请权限继续,我这里就不干了
声明:文章仅代表原作者观点,不代表本站立场;如有侵权、违规,可直接反馈本站,我们将会作修改或删除处理。
图文推荐
2022-04-29 09:06:52
2022-04-28 14:05:43
2022-04-28 14:03:14
2022-04-28 11:06:26
2022-04-28 11:05:03
2022-04-27 09:02:20
热点排行
精彩文章
2022-04-29 09:06:34
2022-04-28 13:08:01
2022-04-28 13:06:12
2022-04-28 13:05:17
2022-04-28 12:02:07
2022-04-28 10:05:38
热门推荐