根据地址获取经度纬度

来源:互联网 发布:北京海洋馆客流量数据 编辑:程序博客网 时间:2024/06/11 20:12
package com.tmg.zhuomuniao;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;/** * Created by Administrator on 2016/2/16. */public class GetLatAndLngByBaidu {    /**     * @param addr     * 查询的地址     * @return     * @throws IOException     */    public static 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 = "8eGiayBVO5YZN601bt4werDN";        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("北京北京市gsdga");        System.out.println(o[0]);//经度        System.out.println(o[1]);//纬度    }}
0 0