方式1: 根据经纬度获取: 省 市 区 位置名称

import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;/** 根据经纬度获取地址:省 市 区 位置名称* */public class AddressUtils {public static void main(String[] args) {Map<String, String> map = getAdd(39.988429, 116.4839);System.out.println(JSON.toJSONString(map));}/***  根据经纬度获取位置信息* @param latitude 纬度* @param longitude 经度* @return*/public static Map<String, String> getAdd(double latitude, double longitude) {// type : 100代表道路,010代表POI(信息点),001代表门址,111可以同时显示前三项String urlString = "http://gc.ditu.aliyun.com/regeocoding?l=" + latitude + "," + longitude + "&type=010";String add = "";try {URL url = new URL(urlString);java.net.HttpURLConnection conn = (java.net.HttpURLConnection) url.openConnection();conn.setDoOutput(true);conn.setRequestMethod("POST");java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(conn.getInputStream(), "UTF-8"));String line;while ((line = in.readLine()) != null) {add += line;}in.close();} catch (Exception e) {e.printStackTrace();}//System.out.println(add);Map<String, String> map = new HashMap<String, String>();JSONObject jsonObject = JSONObject.fromObject(add);JSONArray jsonArray = JSONArray.fromObject(jsonObject.getString("addrList"));if(jsonArray.size() > 0){JSONObject j_2 = JSONObject.fromObject(jsonArray.get(0));String allAdd = j_2.getString("admName");String[] arr = allAdd.split(",");if(arr.length > 0){System.out.println("省:" + arr[0] + "\n市:" + arr[1] + "\n区:" + arr[2]);map.put("county", arr[2]);//县/区map.put("city", arr[1]);//市map.put("province", arr[0]);//省}}return map;}
}

方式2: 根据经纬度获取: 位置名称 区 市 省 国家 邮编

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;/** 根据经纬度获取地址:位置名称 区 市 省 国家 邮编* */public class AddCountryUtils {public final static void main(String[] args) {Map<String, String> map = GetLocationMsg(39.988429, 116.4839);System.out.println(JSON.toJSONString(map));}/***  根据经纬度获取位置信息* @param latitude 纬度* @param longitude 经度* @return*/public static Map<String, String> GetLocationMsg(double latitude, double longitude) {String add = "";String url = String.format("http://maps.google.cn/maps/api/geocode/json?latlng=%s,%s&language=CN", latitude,longitude);URL myURL = null;URLConnection httpsConn = null;try {myURL = new URL(url);} catch (MalformedURLException e) {e.printStackTrace();}try {httpsConn = (URLConnection) myURL.openConnection();if (httpsConn != null) {InputStreamReader insr = new InputStreamReader(httpsConn.getInputStream(), "UTF-8");BufferedReader br = new BufferedReader(insr);String data = null;while ((data = br.readLine()) != null) {add = add + data;}insr.close();}} catch (IOException e) {e.printStackTrace();}//System.out.println(add);Map<String, String> map = new HashMap<String, String>();JSONObject jsonObject = JSONObject.fromObject(add);if (jsonObject.getString("status").equals("OK")) {JSONArray jsonArray = JSONArray.fromObject(jsonObject.getString("results"));if (jsonArray.size() > 0) {JSONObject job = JSONObject.fromObject(jsonArray.get(0));JSONArray jar = JSONArray.fromObject(job.getString("address_components"));if (jar.size() > 0) {for (int i = 0; i < jar.size(); i++) {JSONObject addjob = JSONObject.fromObject(jar.get(i));String name = addjob.getString("long_name");System.out.println(name);int j = 0;if(job.getString("formatted_address").contains("邮政编码")){j = 1;if(i == jar.size() - 1)map.put("ZipCode", name);//邮编}if(i == jar.size() - 4 - j)map.put("county", name);//县/区if(i == jar.size() - 3 - j)map.put("city", name);//市if(i == jar.size() - 2 - j)map.put("province", name);//省if(i == jar.size() - 1 - j)map.put("country", name);//国}}}}return map;}
}

根据经纬度获取地址 :位置名称 区 市 省 国家 邮编相关推荐

  1. java腾讯地图根据经纬度获取具体位置

    腾讯地图 java腾讯地图根据经纬度获取具体位置 java腾讯地图根据经纬度获取具体位置 package com.fengdi.lianmeng.util.tencent;import com.fen ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 百度地图根据经纬度获取地址 查询地址要内部实现MKSearchListener接口 Java代码 public class S ...

  3. python根据地址获取经纬度,通过经纬度获取地址并反写入excel

    import time import requests import pandas as pd from pandas import DataFrame import xlrddeveloper_ke ...

  4. Java 汉字拆分转为拼音 及根据经纬度获取所在位置

    Java 汉字拆分转为拼音 及根据经纬度获取所在位置 java网络代码拼凑人 package com.ruoyi.hfiveinterface.util;import com.alibaba.fast ...

  5. vue 高德地图API根据地址获取经纬度/根据经纬度获取地址

     1.引入 <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.14&am ...

  6. 小程序地图功能及腾讯位置服务SDK获取当前位置名称并显示

    前言 最近有一个小程序的开发需求:获取当前用户的定位,并显示在自定义的地图上,然后需要获取当前的地理位置名称. 实现 wx.getLocation 微信自带的函数可以获取一些信息,比如经纬度还有其他, ...

  7. java后端根据经纬度获取地址(高德地图)

    1.申请高德地图key 2.逆地理编码(坐标->地址)-地理X: https://lbs.amap.com/demo/jsapi-v2/example/geocoder/regeocoding ...

  8. 高德地图报错USERKEY_PLAT_NOMATCH解决办法 + 通过经纬度获取当前位置

    一.场景 我希望通过一个按钮能获取到当前的位置信息. 比如说街道.周围的地标啥的- 二.编写代码.执行.并发现问题 1.通过 js获取到经纬度, 2.通过高德地图api提供的地理逆解析获取到相关信息: ...

  9. 百度地图根据经纬度获取实际位置纠偏

    前言:在使用百度地图的时候,根据经纬度地址逆解析的时候,获取的位置不是很精确,只能获取到省.市县.路名.街道.号,有时只能获取省市县,位置不是很精确.所以使用百度地图位置纠偏方法获取比较精确的实际位置 ...

最新文章

  1. mysql 创建外键索引吗_索引-MySQL无法创建外键约束
  2. Nginx动静分离-tomcat
  3. Java递归基础案例-汉诺塔
  4. Angular 如何使用 InjectionToken 的方式得到当前 location 信息
  5. matlab imdilate_MATLAB--数字图像处理 数学形态学应用
  6. 一起开心集训队第一周训练赛2021/3/14
  7. 关于Centos7启动,ens33无IP问题解决
  8. 巧用这些可视化分析工具,让你的工作效率提升50%!
  9. Java如何读取mysql存入es_java循环读取mysql并存入java集合里
  10. (69)FPGA模块调用(system Verilog调用Verilog)
  11. rabbitmq添加自启动 centos7环境
  12. 常用的Regex验证方法
  13. 全文搜索引擎 Elasticsearch 入门概念
  14. mapbox gl本地化部署实践
  15. win10系统许可证即将过期的解决方法
  16. 计算机会议论文EI检索,ei检索会议论文算期刊_ei论文检索_ei会议论文算核心吗...
  17. 【Python】类型转换:float()函数
  18. google Map API实现地址解析
  19. 序:何为高级java开发工程师?
  20. 嵌入式Linux工程师发展前景 嵌入式工程师待遇怎样?

热门文章

  1. 计算机和计算机思维理论考试试题科目一,科目一丨信息处理与逻辑思维
  2. C/C++工程函数重命名
  3. 佛说.今生娶你的人,就是前世埋葬你的人
  4. 硕盟SM-T67十合一拓展坞体验
  5. C语言利用for循环打印数字三角金字塔
  6. SpringBoot网上商城(源代码+数据库)014
  7. 常用的 APP 发布渠道
  8. 监督学习,非监督学习与半监督学习
  9. pyplot中的subplot函数说明
  10. 374名10万+知乎大V(一):相互关注情况