/*----------------------------------------------------------------
文件名:qqmap-wx-jssdk.js
文件功能描述:位置
----------------------------------------------------------------*/
var ERROR_CONF = {
KEY_ERR: 311,
KEY_ERR_MSG: 'key格式错误',
PARAM_ERR: 310,
PARAM_ERR_MSG: '请求参数信息有误',
SYSTEM_ERR: 600,
SYSTEM_ERR_MSG: '系统错误',
WX_ERR_CODE: 1000,
WX_OK_CODE: 200
};
var BASE_URL = 'https://apis.map.qq.com/ws/';
var URL_SEARCH = BASE_URL + 'place/v1/search';
var URL_SUGGESTION = BASE_URL + 'place/v1/suggestion';
var URL_GET_GEOCODER = BASE_URL + 'geocoder/v1/';
var URL_CITY_LIST = BASE_URL + 'district/v1/list';
var URL_AREA_LIST = BASE_URL + 'district/v1/getchildren';
var URL_DISTANCE = BASE_URL + 'distance/v1/';
var Utils = {
/**
* 得到终点query字符串
* @param {Array|String} 检索数据
*/
location2query(data) {
if (typeof data == 'string') {
return data;
}
var query = '';
for (var i = 0; i < data.length; i++) {
var d = data[i];
if (!!query) {
query += ';';
}
if (d.location) {
query = query + d.location.lat + ',' + d.location.lng;
}
if (d.latitude && d.longitude) {
query = query + d.latitude + ',' + d.longitude;
}
}
return query;
},
/**
* 使用微信接口进行定位
*/
getWXLocation(success, fail, complete) {
wx.getLocation({
type: 'gcj02',
success: success,
fail: fail,
complete: complete
});
},
/**
* 获取location参数
*/
getLocationParam(location) {
if (typeof location == 'string') {
var locationArr = location.split(',');
if (locationArr.length === 2) {
location = {
latitude: location.split(',')[0],
longitude: location.split(',')[1]
};
} else {
location = {};
}
}
return location;
},
/**
* 回调函数默认处理
*/
polyfillParam(param) {
param.success = param.success || function () { };
param.fail = param.fail || function () { };
param.complete = param.complete || function () { };
},
/**
* 验证param对应的key值是否为空
*
* @param {Object} param 接口参数
* @param {String} key 对应参数的key
*/
checkParamKeyEmpty(param, key) {
if (!param[key]) {
var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + key +'参数格式有误');
param.fail(errconf);
param.complete(errconf);
return true;
}
return false;
},
/**
* 验证参数中是否存在检索词keyword
*
* @param {Object} param 接口参数
*/
checkKeyword(param){
return !this.checkParamKeyEmpty(param, 'keyword');
},
/**
* 验证location值
*
* @param {Object} param 接口参数
*/
checkLocation(param) {
var location = this.getLocationParam(param.location);
if (!location || !location.latitude || !location.longitude) {
var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' location参数格式有误')
param.fail(errconf);
param.complete(errconf);
return false;
}
return true;
},
/**
* 构造错误数据结构
* @param {Number} errCode 错误码
* @param {Number} errMsg 错误描述
*/
buildErrorConfig(errCode, errMsg) {
return {
status: errCode,
message: errMsg
};
},
/**
* 构造微信请求参数,公共属性处理
*
* @param {Object} param 接口参数
* @param {Object} param 配置项
*/
buildWxRequestConfig(param, options) {
var that = this;
options.header = { "content-type": "application/json" };
options.method = 'GET';
options.success = function (res) {
var data = res.data;
if (data.status === 0) {
param.success(data);
} else {
param.fail(data);
}
};
options.fail = function (res) {
res.statusCode = ERROR_CONF.WX_ERR_CODE;
param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, result.errMsg));
};
options.complete = function (res) {
var statusCode = +res.statusCode;
switch(statusCode) {
case ERROR_CONF.WX_ERR_CODE: {
param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
break;
}
case ERROR_CONF.WX_OK_CODE: {
var data = res.data;
if (data.status === 0) {
param.complete(data);
} else {
param.complete(that.buildErrorConfig(data.status, data.message));
}
break;
}
default:{
param.complete(that.buildErrorConfig(ERROR_CONF.SYSTEM_ERR, ERROR_CONF.SYSTEM_ERR_MSG));
}
}
}
return options;
},
/**
* 处理用户参数是否传入坐标进行不同的处理
*/
locationProcess(param, locationsuccess, locationfail, locationcomplete) {
var that = this;
locationfail = locationfail || function (res) {
res.statusCode = ERROR_CONF.WX_ERR_CODE;
param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
};
locationcomplete = locationcomplete || function (res) {
console.log(' locationProcess locationcomplete:',res)
if (res.statusCode == ERROR_CONF.WX_ERR_CODE) {
param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
}
};
if (!param.location) {
that.getWXLocation(locationsuccess, locationfail, locationcomplete);
} else if (that.checkLocation(param)) {
var location = Utils.getLocationParam(param.location);
locationsuccess(location);
}
}
}
class QQMapWX {
/**
* 构造函数
*
* @param {Object} options 接口参数,key 为必选参数
*/
constructor(options) {
if (!options.key) {
throw Error('key值不能为空');
}
this.key = options.key;
}
/**
* POI周边检索
*
* @param {Object} options 接口参数对象
*
* 参数对象结构可以参考
* @see http://lbs.qq.com/webservice_v1/guide-search.html
*/
search(options) {
var that = this;
options = options || {};
Utils.polyfillParam(options);
if (!Utils.checkKeyword(options)) {
return;
}
var requestParam = {
keyword: options.keyword,
orderby: options.orderby || '_distance',
page_size: options.page_size || 10,
page_index: options.page_index || 1,
output: 'json',
key: that.key
};
if (options.address_format) {
requestParam.address_format = options.address_format;
}
if (options.filter) {
requestParam.filter = options.filter;
}
var distance = options.distance || "1000";
var auto_extend = options.auto_extend || 1;
var locationsuccess = function (result) {
requestParam.boundary = "nearby(" + result.latitude + "," + result.longitude + "," + distance + "," + auto_extend +")";
wx.request(Ut
没有合适的资源?快使用搜索试试~ 我知道了~
基于JavaScript的微信小程序点餐系统源码(毕设项目).zip
共111个文件
jpg:46个
png:24个
js:17个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 142 浏览量
2023-08-09
15:58:34
上传
评论 4
收藏 1.63MB ZIP 举报
温馨提示
【项目介绍】 基于JavaScript的微信小程序点餐系统源码(毕设项目).zip 基于JavaScript的微信小程序点餐系统源码(毕设项目).zip 基于JavaScript的微信小程序点餐系统源码(毕设项目).zip 该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶, 或者实际项目借鉴参考! 当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。如果基础还行,也可在此代码基础上进行修改,以实现其他功能。
资源推荐
资源详情
资源评论
收起资源包目录
基于JavaScript的微信小程序点餐系统源码(毕设项目).zip (111个子文件)
.gitattributes 66B
skm.jpg 60KB
fengmian.jpg 34KB
dcf1.jpg 30KB
hsr.jpg 29KB
xgz.jpg 29KB
ldz.jpg 29KB
hycx.jpg 29KB
zjm.jpg 29KB
hdz.jpg 29KB
ngb.jpg 29KB
tclj.jpg 29KB
gbjd.jpg 29KB
fzrp.jpg 29KB
mf_g.jpg 29KB
xmlnc.jpg 29KB
yztdq.jpg 29KB
lsf.jpg 29KB
nrqj.jpg 29KB
pj.jpg 29KB
ywnc.jpg 29KB
hmj.jpg 29KB
ztdt.jpg 29KB
kl.jpg 29KB
nms.jpg 29KB
fqcd.jpg 29KB
hxz.jpg 29KB
jwj.jpg 29KB
pdsrz.jpg 29KB
nnf.jpg 29KB
dcf.jpg 29KB
jxb.jpg 29KB
mf.jpg 29KB
sctds.jpg 29KB
xghj.jpg 29KB
zj.jpg 29KB
hywwc.jpg 29KB
sgsl.jpg 29KB
glmf.jpg 29KB
gbsjd.jpg 29KB
sgc.jpg 29KB
xcjmh.jpg 29KB
hjf.jpg 29KB
smz.jpg 29KB
scy.jpg 29KB
bxgz.jpg 20KB
star.jpg 1015B
qqmap-wx-jssdk.js 13KB
thisorder.js 10KB
index.js 9KB
app.js 9KB
my.js 6KB
util.js 6KB
newshop.js 5KB
login.js 3KB
request.js 3KB
fuwu.js 3KB
shop.js 3KB
autoheight.js 1KB
index.js 896B
constants.js 664B
session.js 402B
utils.js 387B
menus.js 237B
app.json 1KB
project.config.json 914B
.bower.json 875B
sitemap.json 191B
newshop.json 27B
index.json 2B
fuwu.json 2B
thisorder.json 2B
my.json 2B
shop.json 2B
tuijian.png 105KB
orderBox.png 42KB
orderBoxRight.png 42KB
shijian.png 28KB
orderList.png 16KB
my.png 16KB
mySelected.png 15KB
cai.png 15KB
shoppic_time.png 9KB
localtion1.png 9KB
phone2.png 7KB
localtion2.png 6KB
shouyeSelected.png 4KB
shopmiaoshu.png 4KB
phone.png 3KB
dish-close.png 3KB
shouye.png 3KB
orderListSelected.png 2KB
countSelAdd.png 2KB
call2.png 2KB
countMinus.png 2KB
countSelect.png 890B
dropdown.png 785B
return.png 425B
my.wxml 10KB
index.wxml 7KB
共 111 条
- 1
- 2
资源评论
- ICS_Admin2023-12-14资源很受用,资源主总结的很全面,内容与描述一致,解决了我当下的问题。
Make程序设计
- 粉丝: 5623
- 资源: 3567
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功