java逆地理编码通过经纬度转换为地理位置(通过百度开发API)
java通过经纬度获取地理位置信息
先看效果图
百度API接口文档地址
(1)首先需要百度开发者账号创建一个应用得到ak
(2)java部分实现
@Component
@ConfigurationProperties(prefix = "api.baidu")
@ConditionalOnProperty(prefix = "api.baidu",name = "use",havingValue = "true")
public class BMapApi {private String ak;/*** 逆地理编码*/private String REVERSE_GEOCODING_API = "https://api.map.baidu.com/reverse_geocoding/v3/";private static Set<String> supportedCoordtype = new HashSet<>();static {/*** 目前支持的坐标类型包括:bd09ll(百度经纬度坐标)、bd09mc(百度米制坐标)、gcj02ll(国测局经纬度坐标,仅限中国)、wgs84ll( GPS经纬度)*/supportedCoordtype.add("bd09ll");supportedCoordtype.add("bd09mc");supportedCoordtype.add("gcj02ll");supportedCoordtype.add("wgs84ll");}/*** 全球逆地理编码服务* @param lng* @param lat* @param coordtype 坐标系* @return BMapApiResult* @see <a href="https://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroad">...</a>*/public BMapApiResult reverseGeocoding(BigDecimal lng,BigDecimal lat,String coordtype){String location = lat.toString() + "," + lng.toString();Map<String,Object> params = new HashMap<>();params.put("ak",getAk());params.put("output","json");params.put("coordtype",coordtype);params.put("location",location);BMapApiResult bMapApiResult = JSON.parseObject(HttpUtil.get(REVERSE_GEOCODING_API,params),BMapApiResult.class);return bMapApiResult;}/**** @param lng 经度* @param lat 纬度* @return*/public BMapApiResult reverseGeocoding(BigDecimal lng,BigDecimal lat){return reverseGeocoding(lng, lat,"wgs84ll");}/*** 支持的坐标系* @param coordtype 坐标系名称* @return 是否支持*/public boolean supportCoordtype(String coordtype){return supportedCoordtype.contains(coordtype);}public String getAk() {return ak;}public void setAk(String ak) {this.ak = ak;}
}
配置文件
接收实体
@Data
public class BMapApiResult {private Integer status;Result result;
}
@Data
public class AddressComponent {private String country;private Integer country_code;private String country_code_iso;private String country_code_iso2;private String province;private String city;private Integer city_level;private String district;private String town;private String town_code;private String distance;private String direction;private String adcode;private String street;private String street_number;}
@Data
public class Result {private Location location;private String formatted_address;private String business;private AddressComponent addressComponent;private ArrayList<Object> pois = new ArrayList<Object>();private ArrayList<Object> roads = new ArrayList<Object>();private ArrayList<Object> poiRegions = new ArrayList<Object>();private String sematic_description;private Integer cityCode;
}
@Data
public class Location {private BigDecimal lng;private BigDecimal lat;
}
使用方法
java逆地理编码通过经纬度转换为地理位置(通过百度开发API)相关推荐
- 利用GeoHash实现逆地理编码(经纬度坐标转换行政区划)
目录 前言 理解GeoHash GeoHash精度 GeoHash特征 GeoHash规律 逆地理编码 实现逆地理编码的基本思路 1.全国范围内6位精度GeoHash计算 2.获取全国范围内区/县/三 ...
- 高德地图的逆地理编码 | 将经纬度坐标转化为对应的地理位置
官网 地理/逆地理编码-API文档-开发指南-Web服务 API | 高德地图API 官方解释:地理编码/逆地理编码 API 是通过 HTTP/HTTPS 协议访问远程服务的接口,提供结构化地址与经纬 ...
- 调用高德逆地理接口_PHP实现高德地图的地理/逆地理编码
最近因为项目需求,需要把 酒店地址和 经纬度互相转换,于是就学习使用了高德地图WEB服务端API-地理编码/逆地理编码,下面分享出来. 产品介绍 地理编码/逆地理编码 API 是通过 HTTP/HTT ...
- 高德地图API-地理/逆地理编码开发
1.应用场景 ● 地理编码:将详细的结构化地址转换为高德经纬度坐标.且支持对地标性名胜景区.建筑物名称解析为高德经纬度坐标. 结构化地址举例:北京市朝阳区阜通东大街6号转换后经纬度:116.48088 ...
- Unity GPS定位之逆地理编码(获取经纬度并转换成地理位置)
unity定位 前言 最近在做一款手游,然后策划给的需求就是定位到当前用户所在的城市,然后花了一个上午给做了出来,思路大概就是通过手机定位获取到当前位置的经度和纬度,然后通过各个地图(我这里用的是百度 ...
- python百度地图api经纬度_详解用Python调用百度地图正/逆地理编码API
一.背景 (正)地理编码指的是:将地理位置名称转换成经纬度: 逆地理编码指的是:将经纬度转换成地理位置信息,如地名.所在的省份或城市等 百度地图提供了相应的API,可以方便调用.相应的说明文档如下: ...
- 技巧 | 在R语言中使用高德地图的API进行地理/逆地理编码(地址与经纬度的相互转换)...
高德地图和百度地图都提供了坐标拾取系统,通过坐标查询或坐标反查操作可以查询一个地址对应的经纬度或经纬度对应的地址名称.但是,手动查询的方式效率很低,也不能进行批量查询. 本篇就来介绍在R语言中调用高德 ...
- 高德地图-根据经纬度获取地址(逆地理编码)
1.需要资源: 高德地图搜索SDK以及相关SDk下载地址 2.根据经纬度得到具体地址: 1.这里需要用到地图搜索SDK: 2.通过逆地理编码来实现. 3.示例代码: @Overrideprotecte ...
- 百度地图WEB服务-逆地理编码使用心得
百度地图WEB服务-逆地理编码使用心得 逆地理编码接口 Postman接口请求测试 POI信息召回 Postman接口请求测试 上一篇博文写了我开发项目中最长用的正地理编码接口的博文,这次想总结一下逆 ...
最新文章
- 超简单的react和typescript和引入scss项目搭建流程
- .net erp(办公oa)开发平台架构之流程服务概要介绍
- 怎样从tensorflow的generator object Estimator.predict at 0x7fb1ecefeaf0中取数据
- ‘fopen‘: this function or variable may be unsafe.
- 集合改变时会自动通知的集合类
- 开源 免费使用 打包下载自行部署 :升讯威 周报系统
- oracle索引图文解析,oracle索引介绍(图文详解)
- TensorFlow 教程 --教程--2.2 数据准备
- linux文件及文件夹权限
- c语言有一对兔子结果,c语言编程,求兔子问题。
- Ubuntu Python3安装
- RS232和RS485协议原理和应用
- 中国重点流域已实现休禁渔制度全覆盖
- 文件上传4-uploads靶场6-10
- 小学生遭校长拳击内脏出血 求医救命钱遭抢(图)
- Hadoop MapReduce Splits 切片源码分析及切片机制
- 基音周期 检测 matlab,语音信号基音周期检测的matlab程序
- 计算机技术中常用的术语CAE是指_,计算机技术中常用的术语CAE是指______。A:计算机辅助设计B:计算机辅助制造C:计算机辅助工程D:计...
- 老毛桃制作U盘-linux
- 多账号自媒体工具,多平台同时发布