根据经纬度获取地址 :位置名称 区 市 省 国家 邮编
来源:互联网 发布:大数据新闻的兴起 编辑:程序博客网 时间:2024/06/02 16:12
方式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;}}
阅读全文
0 0
- 根据经纬度获取地址 :位置名称 区 市 省 国家 邮编
- Android之根据经纬度查询位置地址名称
- 百度地图根据经纬度获取国家、州市等地址相关信息
- 根据经纬度获取地理位置名称省、市等信息
- 根据地址获取经纬度
- 根据地址获取经纬度
- 根据经纬度获取地址
- 根据经纬度获得地址位置
- 根据经纬度获取地点名称
- Android根据地址获取经纬度,根据经纬度
- android根据经纬度查询位置名称
- Android根据经纬度获取地址
- google根据地址获取经纬度
- google根据地址获取经纬度
- java 根据经纬度获取地址
- 根据经纬度获取当前地址
- android 根据地址获取经纬度
- ajax根据经纬度 获取地址
- android数据库--sugar
- stack中add()和push()的区别。
- canvas叠合多张图片,以及图片的跨域和onload问题(combine multi imgs)
- 微信内置的浏览器中window.location.href 跳转失败问题
- Checking an Alibi(最短路径 Dijkstra)
- 根据经纬度获取地址 :位置名称 区 市 省 国家 邮编
- srio_v5_6的IP例化
- java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0
- [caioj 1481及poj 3233,利用矩阵乘法解决的经典题目三]矩阵幂级数
- activiti5工作流(三)
- git
- is_numeric 检测变量是否为数字或数字字符串
- HDU 4826Labyrinth(dp)
- eigen求解方程Ax=b