一、添加依赖

            <dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0</version>
</dependency>

二、请求工具类

import com.github.kevinsawicki.http.HttpRequest;

/**
* 请求工具类
*/
public class RequestUtils { private static final String DEFAULT_CHARSET = "utf-8";
private static final int CONNECT_TIMEOUT_IN_MIS_SECOND = 10000;
private static final int READ_TIMEOUT_IN_MIS_SECOND = 30000; public static RequestResult getJsonText(String url, String charset) {
if (charset == null) charset = DEFAULT_CHARSET;
HttpRequest request = HttpRequest.get(url).connectTimeout(CONNECT_TIMEOUT_IN_MIS_SECOND).readTimeout(READ_TIMEOUT_IN_MIS_SECOND);
String body = request.body(charset);
int code = request.code();
request.disconnect();
return new RequestResult(code, body);
} }

三、返回接收类

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter; /**
* 高德地图返回工具类
*/
@Getter
@Setter
@AllArgsConstructor
public class RequestResult { /** 状态码 */
private int code; /** 返回body */
private String body; }

四、高德地图工具类

import java.net.URLEncoder;
import java.util.regex.Matcher;
import java.util.regex.Pattern; /**
* 获取高德地图经纬度
*
* @author lixin.saho
*/
public class MapUtils {
private static String API = "http://restapi.amap.com/v3/geocode/geo?key=<key>&s=rsv3&address=<address>"; private static String KEY = "key"; private static Pattern pattern = Pattern.compile("\"location\":\"(\\d+\\.\\d+),(\\d+\\.\\d+)\""); static {
init();
} private static void init() {
// System.out.println("高德地图工具类初始化");
// System.out.println("api: {}"+API);
// System.out.println("key: {}"+KEY);
API = API.replaceAll("<key>", KEY);
} private static double[] getLatAndLonByAddress(String address) {
try {
String requestUrl = API.replaceAll("<address>", URLEncoder.encode(address, "UTF-8"));
RequestResult requestResult = RequestUtils.getJsonText(requestUrl, null);
if (200 != requestResult.getCode()) {
return null;
}
requestUrl = requestResult.getBody();
if (requestUrl != null) {
Matcher matcher = pattern.matcher(requestUrl);
if (matcher.find() && matcher.groupCount() == 2) {
double[] gps = new double[2];
gps[0] = Double.valueOf(matcher.group(1));
gps[1] = Double.valueOf(matcher.group(2));
return gps;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
} public static void main(String[] args) {
double[] aaa = MapUtils.getLatAndLonByAddress("广东省深圳市福田区天安数码城创业科技大厦一期");
for (double cccc : aaa) {
System.out.println(cccc);
}
System.out.println(MapUtils.getLatAndLonByAddress("广东省深圳市福田区天安数码城创业科技大厦一期")); }

五、高德地图的秘钥,及高德地图工具类里的key需要自己申请

Java 通过地址获取经纬度 - 高德地图的更多相关文章

  1. java根据地址获取百度API经纬度

    java根据地址获取百度API经纬度(详细文档) public void getLarLng(String address) throws Exception { String ak = " ...

  2. 百度地图api根据地址获取经纬度

    package com.haiyisoft.cAssistant;import java.io.BufferedReader;import java.io.IOException; import ja ...

  3. PHP CURL根据详细地址获取腾讯地图经纬度

    <?php $address = "广东省广州市天河区"; $point = getPoint($address); var_dump($point);//输出经纬度 /** ...

  4. 在H5页面内通过地址调起高德地图实现导航

    项目中用到的一个功能是要通过点击地址来实现打开地图app实现地址导航. 如下图: 实现思路就是在H5页面内通过点击marker图标然后进行当前位置与页面上地址的路程规划与导航. 由于项目中用到的是高德 ...

  5. Python 根据地址获取经纬度

    方法一: 使用Geopy包 : https://github.com/geopy/geopy   (仅能精确到城镇,具体街道无结果返回) from geopy.geocoders import Nom ...

  6. Python 根据地址获取经纬度及求距离

    方法一: 使用Geopy包 : https://github.com/geopy/geopy   (仅能精确到城镇,具体街道无结果返回) from geopy.geocoders import Nom ...

  7. 利用百度API(js),怎样通过地址获取经纬度

    根据经纬度找到具体地址:http://api.map.baidu.com/geocoder?location=纬度,经度&output=输出格式类型&key=用户密钥如:http:// ...

  8. JS 通过选择百度地图地址获取经纬度自动填充到文本框中的方法

    首先要注册百度地图API. 1.登录百度地图开放平台http://lbsyun.baidu.com 注册账号,完善信息,点击网站右上角的“API控制台”,点击,创建应用. 应用类型选择:“浏览器端”, ...

  9. Java获取IP地址,IpUtils工具类,Java IP地址获取

    ================================ ©Copyright 蕃薯耀 2020-01-17 https://www.cnblogs.com/fanshuyao/ import ...

随机推荐

  1. javascript中的栈、队列。

                           javascript中的栈.队列 栈方法     栈是一种LIFO(后进先出)的数据结构,在js中实现只需用到2个函数 push()  接受参数并将其放置 ...

  2. leetcode — sum-root-to-leaf-numbers

    import java.util.Stack; /** * * Source : https://oj.leetcode.com/problems/sum-root-to-leaf-numbers/ ...

  3. AppBoxFuture(二): Say goodbye to sql!

      信息管理类应用系统离不开关系数据存储,目前大家基本都使用的是传统的数据库如MySql.Postgres等.作者从事信息化建设十多年,个人认为传统的数据库存在以下的问题: 扩展问题:   系统数据的 ...

  4. 一统江湖的大前端(2)—— Mock.js + Node.js 如何与后端潇洒分手

    <一统江湖的大前端>系列是自己的前端学习笔记,旨在介绍javascript在非网页开发领域的应用案例和发现各类好玩的js库,不定期更新.如果你对前端的理解还是写写页面绑绑事件,那你真的是有 ...

  5. [转]快速新建简单的koa2后端服务

    本文转自:https://blog.csdn.net/saucxs/article/details/83788259 既然前端工程化是基于NodeJS,那么选择NodeJs做前后端分离部署也是理所应当 ...

  6. Java开发笔记(四)Java帝国的度量衡

    秦始皇统一中国之后,实行“书同文,车同轨”,把货币和各种度量衡都统一起来,从而缔造了一个秩序井然的帝国.既然统一度量衡是每个帝国都要做的事情,Java帝国也不例外,对于人生地不熟的初学者来说,只有认识 ...

  7. Solr学习笔记---部署Solr到Tomcat上,可视化界面的介绍和使用,Solr的基本内容介绍,SolrJ的使用

    学习Solr前需要有Lucene的基础 Lucene的一些简单用法:https://www.cnblogs.com/dddyyy/p/9842760.html 1.部署Solr到Tomcat(Wind ...

  8. charles抓包出现乱码 SSL Proxying not enabled for this host:enable in Proxy Setting,SSL locations

    1.情景:抓包的域名下 全部是unknown,右侧出现了乱码 2.查看unknown的notes里面:SSL Proxying not enabled for this host:enable in ...

  9. z-tree 回显所有选中的id

    //回显选择的checkbox函数 function treeHxIdFun(obj) { var objTree = $.fn.zTree.init($("#demo"), se ...

  10. django项目前期准备

    本文转载自 https://blog.csdn.net/xiaogeldx/article/details/89037748 Django现状 Django开发前景 Django的厉害之处 在Pyth ...