思路是:通过传入地址作为参数拼接url调用百度地图,然后解析返回的页面,提取经纬度坐标。
以下为具体步骤
- public void getPoint(String address){
- try {
- String sCurrentLine;
- String sTotalString;
- sCurrentLine = "";
- sTotalString = "";
- java.io.InputStream l_urlStream;
- java.net.URL l_url = new java.net.URL("http://api.map.baidu.com/geocoder/v2/?address="+address.replaceAll(" ", "")+"&output=json&ak=702632E1add3d4953d0f105f27c294b9&callback=showLocation");
- java.net.HttpURLConnection l_connection = (java.net.HttpURLConnection) l_url.openConnection();
- l_connection.connect();
- l_urlStream = l_connection.getInputStream();
- java.io.BufferedReader l_reader = new java.io.BufferedReader(new java.io.InputStreamReader(l_urlStream));
- String str=l_reader.readLine();
- //用经度分割返回的网页代码
- String s=","+"\""+"lat"+"\""+":";
- String strs[]=str.split(s, 2);
- String s1="\""+"lng"+"\""+":";
- String a[]=strs[0].split(s1, 2);
- lng坐标(a[1]); //纬度
- s1="}"+","+"\"";
- String a1[]=strs[1].split(s1, 2);
- lat坐标(a1[0]); 经度
- } catch (Exception e) {
- e.printStackTrace();
- }
- }