1. 程式人生 > >微信開發之如何根據經緯度獲取所在的地點資訊

微信開發之如何根據經緯度獲取所在的地點資訊

歡迎關注微信服務號:小灰熊   

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();
}
 
}


}