新闻| 文章| 资讯| 行情| 企业| wap手机版| article文章| 首页|会员中心|保存桌面|手机浏览
普通会员

汶上市书蕾科技公司

企业列表
新闻列表
  • 暂无新闻
推荐企业新闻
联系方式
  • 联系人:王先生
首页 > 新闻中心 > Java通过百度地图API获取定位-普通IP定位
新闻中心
Java通过百度地图API获取定位-普通IP定位
发布时间:2024-11-15        浏览次数:1        返回列表

项目中有一个登录邮箱提醒的功能,需要根据IP地址获取定位信息,从而更好地提示用户账号登录的所在地。为此,花费了一些时间来实现这个功能。

Java通过百度地图API获取定位-普通IP定位

在CSDN搜索了一下,发现关于获取定位的文章说明都不够详细,于是决定自己创作一篇文章,希望能够帮助到有需求的小伙伴~

因为博主日常生活中用的导航APP就是百度地图,所以使用百度地图的API来实现这个功能。

目录

百度地图开放平台

开始前的准备工作

学习官网API文档

修改API的AK配置

Java代码获取定位

通过官网生成代码

运行生成的代码

创建接口返回对象

Point.java

Location.java

Content.java

AddressDetail.java

将JSON字符串转成Location对象

代码的最后优化


本篇文章都是围绕百度地图的开放平台官网的相关说明来展开的,访问下面的链接

这是开放平台的首页截图

开始前的准备工作

点击上方导航菜单的开发文档-Web服务API总览

 紧接着,点击左侧菜单中的定位,点击普通IP定位

然后根据开发文档的提示完成步骤1、2、3

 

学习官网API文档

最后点击步骤4,开始使用百度地图的API

如上图,文档已经给出了API的接口地址和参数说明,以及API接口返回的参数格式。

 

修改API的AK配置

在这里,需要修改一下创建的应用的相关设置。

点击上图的设置按钮来到这个页面,然后拉到页面的底部,修改应用的请求校验方式为sn校验方式,然后点击提交按钮。

把AK复制到示例代码的输入框中,点击确认按钮自动生成获取定位的Java代码,可以说非常方便。

通过官网生成代码

新建一个类SearchHttpAK,把示例代码复制到SearchHttpAK类里,复制按钮在下图红框内。

调整之后的代码如下(真实的AK和SK都已经被博主替换了,这里的5个x改成自己的AK和SK就行了)。

 

注意,不要修改这里的map的放入顺序,否则请求接口会报错~

 

运行生成的代码

然后运行一下代码,如果能看到下面这样的运行结果,恭喜你,你已经成功了一大半~

不要纠结获取到的位置信息里很多16进制,因为马上就要把他转成一个自定义的实体类

创建接口返回对象

根据这个API返回的JSON格式字符串的结构,创建4个对应的实体类

Point.java
 

Location.java
 

Content.java
 

AddressDetail.java
 

将JSON字符串转成Location对象

修改一下部分方法的名称,然后把字符串通过fastjson的API转成Location对象

 

运行代码,效果如下

在使用的时候,只需要传入IP地址即可获取到定位信息~

代码的最后优化

上面的代码已经是进行了一定的优化,除此之外,可以把AK和SK配置到application.yml中,可以动态地修改。最后重命名一下这个类,改成类似LocationUtils这样的名字。