微信開發之如何根據經緯度獲取所在的地點資訊
阿新 • • 發佈:2019-02-14
歡迎關注微信服務號:小灰熊
package com.lwz.wx.util;
//需要匯入的包 在網上都是比較容易找到的import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
public class GetAddressbyJW {
/**
* @param args
*/
//用來轉化URL 的 這裡用的是百度的,其他的介面也都是類似的
public String palceRequestUrl(String lat,String lng) throws UnsupportedEncodingException {
String url = "http://api.map.baidu.com/geocoder/v2/?"+ "&ak="
+ "百度給你的AK 需要設定為所以IP都可以用哦"+"&location="+lat+","+lng +"&output="+"json"+"&pois=0";
return url;
}
// 這裡是獲取位置的
public String getPalace(String lat,String lng) throws Exception{String url = palceRequestUrl(lat,lng); // 獲取完整的URL
HttpClient client = new HttpClient();
PostMethod getMethod = new PostMethod(url);
client.executeMethod(getMethod); // 用post方式提交資料
String returnStr = getMethod.getResponseBodyAsString();//連結返回來的資訊
// 由於上面我們定義了接收返回的資料是JSON 所以這裡需要對JSON 進行解析
JSONObject jsonObj = JSONObject.fromObject(returnStr );// 把接收回來的轉成json
// System.out.println(jsonObj); //可以嘗試打印出來看下是什麼String ss= jsonObj.getString("result"); // 這個result 就是我們需要的結果
JSONObject jsonObj1 = JSONObject.fromObject(ss);
// System.out.println(jsonObj1);
// System.out.println(jsonObj1.getString("formatted_address"));
String message=jsonObj1.getString("addressComponent");
JSONObject jsonObj2 = JSONObject.fromObject(message); //這裡就看你需要什麼了 可以自己獲取
message=jsonObj2.getString("city");
// System.out.println(message);
return message;
}
// 簡單的main 呼叫
public static void main(String[] args) {
GetAddressbyJW test=new GetAddressbyJW();
try {
String ss= test.getPalace( "26.08", "119.28");
System.out.println(ss);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}