最新新闻:

    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定位获取当前城市,点击申请权限。

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

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

    猜您喜欢

    图文推荐

    热点排行

    精彩文章

    热门推荐