如何用ip来换取用户所在的城市,今天在开发项目的时候就需要定位用户所在城市,然后不同城市展示不同的商品信息。
刚开始百度一下找了半天,很多给出来的api接口都失效了,最后找到了百度的api,相信百度的api不会掉线,索性就用百度的api,但是对每天调用的额度有限制,如果企业账户认证了的话额度都很高,足够使用了。
如果需要更详细的获取用户的经纬度,或者获取用户的省市区,参考这篇文章:
百度文档:http://lbsyun.baidu.com/index.php?title=webapi/ip-api
api调用地址:
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协议
请求参数:
参数名称 | 参数含义 | 类型 | 备注 |
---|---|---|---|
用户上网的IP地址,请求中如果不出现或为空,会针对发来请求的IP进行定位。 如您需要通过IPv6来获取位置信息,请提交工单申请。 | |||
开发者密钥,可在API控制台申请获得 | |||
若用户所用AK的校验方式为SN校验时该参数必填(什么是SN校验?)。其他AK校验方式的可不填写 | |||
设置返回位置信息中,经纬度的坐标类型,分别如下: coor不出现、或为空:百度墨卡托坐标,即百度米制坐标 coor = bd09ll:百度经纬度坐标,在国测局坐标基础之上二次加密而来 coor = gcj02:国测局02坐标,在原始GPS坐标基础上,按照国家测绘行业统一要求,加密后的坐标 注意:百度地图的坐标类型为bd09ll,如果结合百度地图使用,请注意坐标选择 |
返回结果,json格式:
结果字段 | 字段含义 | 类型 | ||
address | 详细地址信息 | string | ||
content | address | 简要地址信息 | string | |
address_detail | city | 城市 | string | |
city_code | 百度城市代码 | string | ||
province | 省份 | string | ||
point | x | 当前城市中心点经度 | string | |
y | 当前城市中心点纬度 | string | ||
status | 结果状态返回码,请参考本章节后面的介绍 | string |
接口返回成功示例:
{ address: "CN|北京|北京|None|CHINANET|1|None", #详细地址信息 content: #结构信息 { address: "北京市", #简要地址信息 address_detail: #结构化地址信息 { city: "北京市", #城市 city_code: 131, #百度城市代码 province: "北京市", #省份 }, point: #当前城市中心点 { x: "116.39564504", #当前城市中心点经度 y: "39.92998578" #当前城市中心点纬度 } }, status: 0 #结果状态返回码 }