Java 通过地址获取经纬度 - 高德地图
一、添加依赖
- <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 通过地址获取经纬度 - 高德地图的更多相关文章
- java根据地址获取百度API经纬度
java根据地址获取百度API经纬度(详细文档) public void getLarLng(String address) throws Exception { String ak = " ...
- 百度地图api根据地址获取经纬度
package com.haiyisoft.cAssistant;import java.io.BufferedReader;import java.io.IOException; import ja ...
- PHP CURL根据详细地址获取腾讯地图经纬度
<?php $address = "广东省广州市天河区"; $point = getPoint($address); var_dump($point);//输出经纬度 /** ...
- 在H5页面内通过地址调起高德地图实现导航
项目中用到的一个功能是要通过点击地址来实现打开地图app实现地址导航. 如下图: 实现思路就是在H5页面内通过点击marker图标然后进行当前位置与页面上地址的路程规划与导航. 由于项目中用到的是高德 ...
- Python 根据地址获取经纬度
方法一: 使用Geopy包 : https://github.com/geopy/geopy (仅能精确到城镇,具体街道无结果返回) from geopy.geocoders import Nom ...
- Python 根据地址获取经纬度及求距离
方法一: 使用Geopy包 : https://github.com/geopy/geopy (仅能精确到城镇,具体街道无结果返回) from geopy.geocoders import Nom ...
- 利用百度API(js),怎样通过地址获取经纬度
根据经纬度找到具体地址:http://api.map.baidu.com/geocoder?location=纬度,经度&output=输出格式类型&key=用户密钥如:http:// ...
- JS 通过选择百度地图地址获取经纬度自动填充到文本框中的方法
首先要注册百度地图API. 1.登录百度地图开放平台http://lbsyun.baidu.com 注册账号,完善信息,点击网站右上角的“API控制台”,点击,创建应用. 应用类型选择:“浏览器端”, ...
- Java获取IP地址,IpUtils工具类,Java IP地址获取
================================ ©Copyright 蕃薯耀 2020-01-17 https://www.cnblogs.com/fanshuyao/ import ...
随机推荐
- 带着新人学springboot的应用12(springboot+Dubbo+Zookeeper 下)
上半节已经下载好了Zookeeper,以及新建了两个应用provider和consumer,这一节我们就结合dubbo来测试一下分布式可不可以用. 现在就来简单用一下,注意:这里只是涉及最简单的部分, ...
- (一)你的第一个Socket程序
概述 本文通过一个最简单的Socket通信来对每一步做通俗易懂的讲解让你了解这些函数到底是干什么用的.下面的代码虽然是用Pyhton实现的,但是你要知道这些通信机制并不是Python所定义的,因为这些 ...
- 补习系列(5)-springboot- restful应用
一.目标 了解 Restful 是什么,基本概念及风格: 能使用SpringBoot 实现一套基础的 Restful 风格接口: 利用Swagger 生成清晰的接口文档. 二.Restful 入门 什 ...
- linux添加C#运行环境
linux是不带C#的运行环境的,同样的还有.NET. 有一个叫做Mono的很好用http://www.go-mono.com/,有给docker,而且有环境的选择,要注意. 安好后有给样例的程序,编 ...
- ES6躬行记(5)——对象字面量的扩展
一.简洁属性和方法 当创建对象字面量时,如果属性值是与属性同名的已定义的标识符(例如变量.常量等),那么ES6允许省略冒号和属性值,这样就能避免冗余的初始化.下面分别用传统的键值对和最新的简写方式创建 ...
- windows资源管理器多标签打开 windows文件夹多标签浏览 浏览器tab页面一样浏览文件夹 clover win8 win10 报错 无响应问题怎么解决 clover卡死 clover怎么换皮肤
大家都知道,我们打开一堆文件夹的时候,是什么样子 “厚厚的一叠”图标堆叠在一起的,非常的不方便 那么,是不是可以像浏览器一样的tab页面展示呢? 答案是可以的 安装好就是这样子的 是不是方便漂亮了很多 ...
- Django学习笔记(6)——Form表单
知识储备:HTML表单form学习 表单,在前端页面中属于最常见的一个东西了.基本上网站信息的提交都用到了表单,所以下面来学习Django中优雅的表单系统:Form 表单的主要作用是在网页上提供一个图 ...
- Python四步实现决策树ID3算法,参考机器学习实战
一.编写计算历史数据的经验熵函数 from math import log def calcShannonEnt(dataSet): numEntries = len(dataSet) labelCo ...
- [转]react 部署在ngnix上(windows环境)
本文转自:https://blog.csdn.net/wly_er/article/details/82348593 目录 1.下载nginx. 2.测试nginx 3.配置react项目 4.ngi ...
- array_merge和array+的区别分析
记得之前发现很多朋友用过array+array的方式,今天索性再聊下这样的话题:如何获取字符键名相同值不同的两个数组值集合?让我认真比较了下PHP中array_merge和array相加的区别 首先来 ...