码迷,mamicode.com
首页 > 其他好文 > 详细

获取经纬度

时间:2015-12-11 22:31:04      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

package cn.stopgo.tool;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class GetLatAndLngByBaidu {
     /** 
        * @param addr 
        * 查询的地址 
        * @return 
        * @throws IOException 
        */
        public Object[] getCoordinate(String addr) throws IOException { 
            String lng = null;//经度
            String lat = null;//纬度
            String address = null; 
            try { 
                address = java.net.URLEncoder.encode(addr, "UTF-8"); 
            }catch (UnsupportedEncodingException e1) { 
                e1.printStackTrace(); 
            } 
            //String key = "f247cdb592eb43ebac6ccd27f796e2d2"; 
           String key= "cS1CFjKqbPd6lbeg7ERsPodT";
            String url = String .format("http://api.map.baidu.com/geocoder?address=%s&output=json&key=%s", address, key); 
            URL myURL = null; 
            URLConnection httpsConn = null; 
            try { 
                myURL = new URL(url); 
            } catch (MalformedURLException e) { 
                e.printStackTrace(); 
            } 
            InputStreamReader insr = null;
            BufferedReader br = null;
            try { 
                httpsConn = (URLConnection) myURL.openConnection();// 不使用代理 
                if (httpsConn != null) { 
                    insr = new InputStreamReader( httpsConn.getInputStream(), "UTF-8"); 
                    br = new BufferedReader(insr); 
                    String data = null; 
                    int count = 1;
                    while((data= br.readLine())!=null){ 
                        if(count==5){
                            lng = (String)data.subSequence(data.indexOf(":")+1, data.indexOf(","));//经度
                            count++;
                        }else if(count==6){
                            lat = data.substring(data.indexOf(":")+1);//纬度
                            count++;
                        }else{
                            count++;
                        }
                    } 
                } 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } finally {
                if(insr!=null){
                    insr.close();
                }
                if(br!=null){
                    br.close();
                }
            }
            return new Object[]{lng,lat}; 
        } 
      
      
        public static void main(String[] args) throws IOException {
            GetLatAndLngByBaidu getLatAndLngByBaidu = new GetLatAndLngByBaidu();
            Object[] o = getLatAndLngByBaidu.getCoordinate("唐山");
            System.out.println(o[0]);//经度
            System.out.println(o[1]);//纬度
        }
}

 

获取经纬度

标签:

原文地址:http://www.cnblogs.com/baijin05/p/5040266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!