/** * 百度地图微信小程序 SDK */ 'use strict'; function _classCallCheck(t, a) { if (!(t instanceof a)) throw new TypeError('Cannot call a class as a function'); } var _createClass = (function() { function t(t, a) { for (var e = 0; e < a.length; e++) { var i = a[e]; (i.enumerable = i.enumerable || !1), (i.configurable = !0), 'value' in i && (i.writable = !0), Object.defineProperty(t, i.key, i); } } return function(a, e, i) { return e && t(a.prototype, e), i && t(a, i), a; }; })(), BMapWX = (function() { function t(a) { _classCallCheck(this, t), (this.ak = a.ak); } return ( _createClass(t, [ { key: 'getWXLocation', value: function(t, a, e, i) { (t = t || 'gcj02'), (a = a || function() {}), (e = e || function() {}), (i = i || function() {}), wx.getLocation({ type: t, success: a, fail: e, complete: i }); }, }, { key: 'search', value: function(t) { var a = this; t = t || {}; var e = { query: t.query || '生活服务$美食&酒店', scope: t.scope || 1, filter: t.filter || '', coord_type: t.coord_type || 2, page_size: t.page_size || 10, page_num: t.page_num || 0, output: t.output || 'json', ak: a.ak, sn: t.sn || '', timestamp: t.timestamp || '', radius: t.radius || 2e3, ret_coordtype: 'gcj02ll', }, i = { iconPath: t.iconPath, iconTapPath: t.iconTapPath, width: t.width, height: t.height, alpha: t.alpha || 1, success: t.success || function() {}, fail: t.fail || function() {}, }, n = function(t) { (e.location = t.latitude + ',' + t.longitude), wx.request({ url: 'https://api.map.baidu.com/place/v2/search', data: e, header: { 'content-type': 'application/json' }, method: 'GET', success: function(t) { var a = t.data; if (0 === a.status) { var e = a.results, n = {}; (n.originalData = a), (n.wxMarkerData = []); for (var s = 0; s < e.length; s++) n.wxMarkerData[s] = { id: s, latitude: e[s].location.lat, longitude: e[s].location.lng, title: e[s].name, iconPath: i.iconPath, iconTapPath: i.iconTapPath, address: e[s].address, telephone: e[s].telephone, alpha: i.alpha, width: i.width, height: i.height, }; i.success(n); } else i.fail({ errMsg: a.message, statusCode: a.status }); }, fail: function(t) { i.fail(t); }, }); }, s = function(t) { i.fail(t); }, o = function(t) {}; if (t.location) { var c = t.location.split(',')[1]; n({ errMsg: 'input location', latitude: t.location.split(',')[0], longitude: c, }); } else a.getWXLocation('gcj02', n, s, o); }, }, { key: 'suggestion', value: function(t) { var a = this; t = t || {}; var e = { query: t.query || '', region: t.region || '全国', city_limit: t.city_limit || !1, output: t.output || 'json', ak: a.ak, sn: t.sn || '', timestamp: t.timestamp || '', ret_coordtype: 'gcj02ll', }, i = { success: t.success || function() {}, fail: t.fail || function() {}, }; wx.request({ url: 'https://api.map.baidu.com/place/v2/suggestion', data: e, header: { 'content-type': 'application/json' }, method: 'GET', success: function(t) { var a = t.data; 0 === a.status ? i.success(a) : i.fail({ errMsg: a.message, statusCode: a.status }); }, fail: function(t) { i.fail(t); }, }); }, }, { key: 'regeocoding', value: function(t) { var a = this; t = t || {}; var e = { coordtype: t.coordtype || 'gcj02ll', ret_coordtype: 'gcj02ll', radius: t.radius || 1e3, ak: a.ak, sn: t.sn || '', output: t.output || 'json', callback: t.callback || function() {}, extensions_poi: t.extensions_poi || 1, extensions_road: t.extensions_road || !1, extensions_town: t.extensions_town || !1, language: t.language || 'zh-CN', language_auto: t.language_auto || 0, }, i = { iconPath: t.iconPath, iconTapPath: t.iconTapPath, width: t.width, height: t.height, alpha: t.alpha || 1, success: t.success || function() {}, fail: t.fail || function() {}, }, n = function(t) { (e.location = t.latitude + ',' + t.longitude), wx.request({ url: 'https://api.map.baidu.com/reverse_geocoding/v3', data: e, header: { 'content-type': 'application/json' }, method: 'GET', success: function(a) { var e = a.data; if (0 === e.status) { var n = e.result, s = {}; (s.originalData = e), (s.wxMarkerData = []), (s.wxMarkerData[0] = { id: 0, latitude: t.latitude, longitude: t.longitude, address: n.formatted_address, iconPath: i.iconPath, iconTapPath: i.iconTapPath, desc: n.sematic_description, business: n.business, alpha: i.alpha, width: i.width, height: i.height, }), i.success(s); } else i.fail({ errMsg: e.message, statusCode: e.status }); }, fail: function(t) { i.fail(t); }, }); }, s = function(t) { i.fail(t); }, o = function(t) {}; if (t.location) { var c = t.location.split(',')[1]; n({ errMsg: 'input location', latitude: t.location.split(',')[0], longitude: c, }); } else a.getWXLocation('gcj02', n, s, o); }, }, { key: 'geocoding', value: function(t) { var a = this; t = t || {}; var e = { address: t.address || '', city: t.city || '', ret_coordtype: t.coordtype || 'gcj02ll', ak: a.ak, sn: t.sn || '', output: t.output || 'json', callback: t.callback || function() {}, }, i = { iconPath: t.iconPath, iconTapPath: t.iconTapPath, width: t.width, height: t.height, alpha: t.alpha || 1, success: t.success || function() {}, fail: t.fail || function() {}, }; if (t.address) wx.request({ url: 'https://api.map.baidu.com/geocoding/v3', data: e, header: { 'content-type': 'application/json' }, method: 'GET', success: function(t) { var a = t.data; if (0 === a.status) { var e = a.result, n = a; (n.originalData = a), (n.wxMarkerData = []), (n.wxMarkerData[0] = { id: 0, latitude: e.location.lat, longitude: e.location.lng, iconPath: i.iconPath, iconTapPath: i.iconTapPath, alpha: i.alpha, width: i.width, height: i.height, }), i.success(n); } else i.fail({ errMsg: a.message, statusCode: a.status }); }, fail: function(t) { i.fail(t); }, }); else { var n = { errMsg: 'input address!' }; i.fail(n); } }, }, { key: 'weather', value: function(t) { var a = this; t = t || {}; var e = { coord_type: t.coord_type || 'gcj02', output: t.output || 'json', ak: a.ak, sn: t.sn || '', timestamp: t.timestamp || '', }, i = { success: t.success || function() {}, fail: t.fail || function() {}, }, n = function(t) { (e.location = t.longitude + ',' + t.latitude), wx.request({ url: 'https://api.map.baidu.com/telematics/v3/weather', data: e, header: { 'content-type': 'application/json' }, method: 'GET', success: function(t) { var a = t.data; if (0 === a.error && 'success' === a.status) { var e = a.results, n = {}; (n.originalData = a), (n.currentWeather = []), (n.currentWeather[0] = { currentCity: e[0].currentCity, pm25: e[0].pm25, date: e[0].weather_data[0].date, temperature: e[0].weather_data[0].temperature, weatherDesc: e[0].weather_data[0].weather, wind: e[0].weather_data[0].wind, }), i.success(n); } else i.fail({ errMsg: a.message, statusCode: a.status }); }, fail: function(t) { i.fail(t); }, }); }, s = function(t) { i.fail(t); }, o = function(t) {}; if (t.location) { var c = t.location.split(',')[0]; n({ errMsg: 'input location', latitude: t.location.split(',')[1], longitude: c, }); } else a.getWXLocation('gcj02', n, s, o); }, }, ]), t ); })(); module.exports.BMapWX = BMapWX;