|
通过js获取经纬度后,传到后台获取地址,但是一直无法获取地址,我完全是仿照外卖做的,这是什么原因?
// 查询地址
Model.prototype.queryAddr = function() {
var me = this;
var self= this;
var gpsDtd = this.getLocation(); // 获取当前信息
gpsDtd.done(function(position) {
var x = position.latitude; // 纬度
var y = position.longitude; // 经度
Baas.sendRequest({
"url" : "/laojiang/map",
"action" : "queryAddr",
"async" : false,
"params" : {
x : x,
y : y
},
"success" : function(data) {
if (!data) {
self._userDefaultAddress = me.address;
return;
}
var addrList = data.addrList;
addrList = addrList ? addrList[0] : {};
var status = addrList.status;
if (status == 1) {
var admName = addrList.admName;
admName = admName ? admName.replace(",", "") : admName;
var address = admName + addrList.name;
self._userDefaultAddress = address;
} else {
self._userDefaultAddress = me.content;
}
var addressData = self.comp("addressData");
if (addressData.getCount() == 1) {
addressData.setValue("fAddress", self._userDefaultAddress);
}
}
});
});
};
public static JSONObject queryAddr(JSONObject params, ActionContext context) throws SQLException, NamingException, ParseException{
String httpUrl = "http://apis.baidu.com/3023/geo/address";
String x = "", y = "";
if (params != null && !"".equals(params)) {
x = params.getString("x");
y = params.getString("y");
}
if (x.length() == 0)
x = "39.8622934399999";
if (y.length() == 0)
y = "116.45764191999997";
String httpArg = "l=" + x + "," + y;
httpUrl = httpUrl + "?" + httpArg;
ServletResponse response = (ServletResponse)(context.get(ActionContext.RESPONSE));
response.setCharacterEncoding("UTF-8");
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
// 填入apikey到HTTP header
connection.setRequestProperty("apikey", "lUZTNmwPfQlTBtQqrUFzIYxoTkbXNrR2");
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
response.getWriter().println(result);
} catch (Exception e) {
}
return null;
}
|
|