package com.ly.ordering.untils; import org.apache.commons.lang3.StringUtils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; /** * Created with IntelliJ IDEA. * User: 刘家豪 * Date: 2018/3/21 下午3:46 * Description: 获取经纬度 */ public class GetCoordinates { public static final String KEY_1 = "7d9fbeb43e975cd1e9477a7e5d5e192a"; public static Map<String,String> getGeocoderLatitude(String address){ BufferedReader in = null; try { address = URLEncoder.encode(address, "UTF-8"); URL tirc = new URL("http://api.map.baidu.com/geocoder?address="+ address +"&output=json&key="+ KEY_1); in = new BufferedReader(new InputStreamReader(tirc.openStream(),"UTF-8")); String res; StringBuilder sb = new StringBuilder(""); while((res = in.readLine())!=null){ sb.append(res.trim()); } String str = sb.toString(); Map<String,String> map = null; if(StringUtils.isNotEmpty(str)){ int lngStart = str.indexOf("lng\":"); int lngEnd = str.indexOf(",\"lat"); int latEnd = str.indexOf("},\"precise"); if(lngStart > 0 && lngEnd > 0 && latEnd > 0){ String lng = str.substring(lngStart+5, lngEnd); String lat = str.substring(lngEnd+7, latEnd); map = new HashMap<String,String>(); map.put("lng", lng); map.put("lat", lat); return map; } } }catch (Exception e) { e.printStackTrace(); }finally{ try { in.close(); } catch (IOException e) { e.printStackTrace(); } } return null; } public static void main(String args[]){ try { Map<String, String> json = GetCoordinates.getGeocoderLatitude("南京市栖霞区仙隐北路5号"); System.out.println("lng : " + json.get("lng")); System.out.println("lat : " + json.get("lat")); }catch (Exception e ){ e.printStackTrace(); } } }
获取地址经纬度
最新推荐文章于 2022-10-21 17:11:30 发布