| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- const req = require("./request.js");
- const QQMapWX = require("./qqmap-wx-jssdk.js");
- let qqmapsdk;
- const initMap = key => {
- if (!qqmapsdk) {
- qqmapsdk = new QQMapWX({
- key: key ? key : req.public.mapLBSKEY
- });
- }
- };
- const geocoder = (address, success) => {
- //进行地址解析
- qqmapsdk.geocoder({
- address: address,
- success(res) {
- if (res.status !== 0) return req.msg(res.message);
- // if (res.result.deviation < 0 || res.result.reliability < 7) return req.msg('请输入详细的街道及门牌号');
- success.call(this, res.result);
- },
- fail: function (error) {
- console.error(error);
- success.call(this, false);
- },
- complete: function (res) {
- // console.log(res);
- }
- });
- }; //计算两点之间的距离默认直线距离
- const calculateDistance = (form, to, success, mode) => {
- // console.log(form, to);
- qqmapsdk.calculateDistance({
- mode: mode ? mode : 'straight',
- from: form,
- to: to,
- success(res) {
- // console.log(res);
- if (res.status !== 0) return req.msg(res.message);
- success.call(this, res.result);
- }
- });
- }; //计算是否超出配送距离
- const calculate = (form, to, distance, success) => {
- calculateDistance(form, to, res => {
- if (res.elements[0].distance / 1000 > distance) {
- return req.msg('非常抱歉,您的配送地址超出我们的配送服务范围');
- } else {
- success.call(this);
- }
- });
- };
- const reverseGeocoder = (location, success) => {
- qqmapsdk.reverseGeocoder({
- location: location,
- success(res) {
- console.log('反地址地理位置数据>>>>>>>==',res);
- req.setStorage('loctionAddressMap', res.result.ad_info);
- success.call(this, res.result);
- },
- fail: function (error) {
- console.error(error);
- success.call(this, false);
- },
- complete: function (res) {
- // console.log(res);
- }
- });
- };
- module.exports = {
- initMap: initMap,
- geocoder: geocoder,
- calculateDistance: calculateDistance,
- calculate: calculate,
- reverseGeocoder: reverseGeocoder
- };
|