最新新闻:

Web服务API,获取后的位置信息是什么?如何申请?

时间:2022-04-29 09:06:52来源:网络整理

前言:

我们现在要做的功能是根据IP地址获取当前地理位置,这是一个Web服务API。获取的位置信息一般都是城市级别的,不是很准确。

(1)开发者准备工作:

需要登录百度地图的api,点击web service API。

开发文档地址:

请求了两个 URLip定位获取当前城市

ip定位获取当前城市_java获取当前ip地址_php获取当前服务器ip

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)代码调用

java获取当前ip地址_php获取当前服务器ip_ip定位获取当前城市

我将复制得到的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定位获取当前城市,点击申请权限。

点击申请权限继续,我这里就不干了

声明:文章仅代表原作者观点,不代表本站立场;如有侵权、违规,可直接反馈本站,我们将会作修改或删除处理。

猜您喜欢

图文推荐

热点排行

精彩文章

热门推荐