起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2205|回复: 7

[处理中3] 我仿照外卖案例做的定位,一打开页面就能在手机上显示.....

[复制链接]

207

主题

367

帖子

1772

积分

金牌会员

Rank: 6Rank: 6

积分
1772
QQ
发表于 2017-3-24 16:26:12 | 显示全部楼层 |阅读模式
通过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;
        }

发表于 2017-3-24 16:56:14 | 显示全部楼层
自己debugger调试一下js代码!
success 回调中 address 获取到了吗?


还有就是java调试:
http://docs.wex5.com/baas-customaction/
http://docs.wex5.com/wex5-studio-question-list-2001/

哪儿出错或者运行不符合预期结果
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

207

主题

367

帖子

1772

积分

金牌会员

Rank: 6Rank: 6

积分
1772
QQ
 楼主| 发表于 2017-3-25 09:55:35 | 显示全部楼层
本帖最后由 569026369 于 2017-3-25 10:05 编辑
liangyongfei 发表于 2017-3-24 16:56
自己debugger调试一下js代码!
success 回调中 address 获取到了吗?

我的queryAddr方法是仿照外卖的,不明白为什么后面  写 return null;  
在回调中data都是空的


java中调试的结果是 result: {"errNum":300204,"errMsg":"Apikey does not exist"}
回复 支持 反对

使用道具 举报

发表于 2017-3-27 10:31:49 | 显示全部楼层
569026369 发表于 2017-3-25 09:55
我的queryAddr方法是仿照外卖的,不明白为什么后面  写 return null;  
在回调中data都是空的

result: {"errNum":300204,"errMsg":"Apikey does not exist"}

Apikey does not exist 不存在!!!

需要自己去申请百度apikey才能调用它的API方法
比如如下代码
// 填入apikey到HTTP header
                        connection.setRequestProperty("apikey", "8f91a2f0c505d88f49af77bba09ca8eb");
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

207

主题

367

帖子

1772

积分

金牌会员

Rank: 6Rank: 6

积分
1772
QQ
 楼主| 发表于 2017-3-27 10:37:07 | 显示全部楼层
liangyongfei 发表于 2017-3-27 10:31
result: {"errNum":300204,"errMsg":"Apikey does not exist"}

Apikey does not exist 不存在!!!

我申请填入后还是返回不了数据
回复 支持 反对

使用道具 举报

发表于 2017-3-27 11:57:53 | 显示全部楼层
569026369 发表于 2017-3-27 10:37
我申请填入后还是返回不了数据

报错信息请上网搜下!
这个就是标准的 java调用 百度API 啊!!

而错误信息  Apikey does not exist  确实也是 key不存在!是否写错了?
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

207

主题

367

帖子

1772

积分

金牌会员

Rank: 6Rank: 6

积分
1772
QQ
 楼主| 发表于 2017-3-27 15:39:00 | 显示全部楼层
liangyongfei 发表于 2017-3-27 11:57
报错信息请上网搜下!
这个就是标准的 java调用 百度API 啊!!

我已经按照要求申请完了apikey,但是我输出了result的结果

请看附件
没有报错,但找不到地址信息

result.rar

3.46 KB, 下载次数: 30

回复 支持 反对

使用道具 举报

发表于 2017-3-27 16:01:09 | 显示全部楼层
569026369 发表于 2017-3-27 15:39
我已经按照要求申请完了apikey,但是我输出了result的结果

请看附件

这是一个html 文件!!你是在java中调用
/Baas/justep/Takeout.java  写回去的结果

成功回调中参考:
/UI2/takeout/index.js
queryAddr 方法的定义写的吗??
var addrList = data.addrList;

返回的结果不应该是一个html文件吧!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-5 16:38 , Processed in 0.060444 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表