zoukankan      html  css  js  c++  java
  • 24.-----------详细地址转经纬度

    package com.dapail.util;
    
    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;  
      
      
    import org.apache.commons.lang.StringUtils;  
     /**
      * 地址转经纬度 
      * @author Administrator
      *
      */
      
    public class AddressToGpsUtil {  
      
      
        public static final String KEY_1 = "7d9fbeb43e975cd1e9477a7e5d5e192a";  
      
      
      
      
        /** 
         * 返回输入地址的经纬度坐标 
         * key lng(经度),lat(纬度) 
         */  
        public static Map<String,String> getGeocoderLatitude(String address){  
            BufferedReader in = null;  
            try {  
                //将地址转换成utf-8的16进制  
                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 = AddressToGpsUtil.getGeocoderLatitude("湖北省黄冈市麻城市金龙大道");  
                System.out.println("lng : " + json.get("lng"));  
                System.out.println("lat : " + json.get("lat"));  
            }catch (Exception e ){  
               e.printStackTrace();  
            }  
        }  
      
      
    }  
  • 相关阅读:
    商贸通帐套隐藏方法
    固定资产打开提示:上年度数据未结转!
    ZOJ 2432 Greatest Common Increasing Subsequence
    POJ 1080 Human Gene Functions
    POJ 1088 滑雪
    POJ 1141 Brackets Sequence
    POJ 1050 To the Max
    HDOJ 1029 Ignatius and the Princess IV
    POJ 2247 Humble Numbers
    HDOJ 1181 变形课
  • 原文地址:https://www.cnblogs.com/coriander/p/7087065.html
Copyright © 2011-2022 走看看