百度 LBS概述
百度公司推出了强大的LBS解决方案,包括百度LBS地址转换。
百度LBS地址转换是一项提供地理位置信息转换为具体地址的服务。可以将经纬度坐标转化为实际的地址,从而方便开发者在地图应用、导航应用和其他位置相关的应用中使用。
百度LBS地址转换基于百度的地图数据和算法,通过将经纬度坐标与百度地图中的位置信息进行匹配,从而确定具体的地址。该服务支持将单个经纬度坐标转换为地址,也支持批量转换多个坐标
使用百度LBS地址转换步骤
1、获取百度开放平台的密钥:在使用百度LBS地址转换之前,开发者需要在百度开放平台注册并获取相应的密钥。这个密钥将用于调用百度地图API接口。
2、调用地址转换API:开发者可以使用百度提供的地址转换API,向API接口发送请求并传入经纬度坐标。API将返回相应的地址信息,包括国家、省份、城市、街道等详细信息。
3、解析返回结果:开发者需要解析API返回的结果,获取需要的地址信息。可以根据自己的需求,选择提取特定的地址信息,如城市、街道等。
应用场景
1、地图应用:百度LBS地址转换为地图应用提供了精准的地址解析功能,使得用户能够通过输入具体的地址快速定位到目标位置。
2、导航应用:百度LBS地址转换可将经纬度坐标转化为具体地址,提供给导航应用使用。这样用户就可以通过输入目的地的经纬度坐标,快速获取导航路线。
3、配送服务:在物流配送等领域,百度LBS地址转换可以将经纬度坐标转化为实际地址,从而提供准确的配送目的地信息。
申请服务密钥(AK)
进入百度地图开放平台,注册账号,如果之前有百度账号,可以直接使用。
点击上方的地理编码
如果之前已有账号,就直接点击第3步:获取服务密钥(AK)。
复制上方的AK。(注意:要查看当前的应用设置的白名单的ip地址,一定要使用白名单中的ip进行访问。)
对于Leaflet,本篇文章不再赘述,请查看之前的Leaflet详解文章。
案例
需求:
在一个页面输入地址名称,点击按钮,跳到另外一个页面,在该页面显示此地址在地图上的位置。
工具类
package com.soft.controller;
import org.springframework.web.util.UriUtils;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.Map;
public class SearchHttpAK {
/**
* 默认ak
* 选择了ak,使用IP白名单校验:
* 根据您选择的AK已为您生成调用代码
* 检测到您当前的ak设置了IP白名单校验
* 您的IP白名单中的IP非公网IP,请设置为公网IP,否则将请求失败
* 请在IP地址为xxxxxxx的计算发起请求,否则将请求失败
*/
public String requestGetAK(String strUrl, Map<String, String> param) throws Exception {
if (strUrl == null || strUrl.length() <= 0 || param == null || param.size() <= 0) {
return null;
}
StringBuffer queryString = new StringBuffer();
queryString.append(strUrl);
for (Map.Entry<?, ?> pair : param.entrySet()) {
queryString.append(pair.getKey() + "=");
// 第一种方式使用的 jdk 自带的转码方式 第二种方式使用的 spring 的转码方法 两种均可
// queryString.append(URLEncoder.encode((String) pair.getValue(), "UTF-8").replace("+", "%20") + "&");
queryString.append(UriUtils.encode((String) pair.getValue(), "UTF-8") + "&");
}
if (queryString.length() > 0) {
queryString.deleteCharAt(queryString.length() - 1);
}
java.net.URL url = new URL(queryString.toString());
System.out.println(queryString.toString());
URLConnection httpConnection = (HttpURLConnection) url.