UNPKG

@yhiot/utils

Version:
465 lines (415 loc) 11.9 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getRequest = exports.infocode = exports.services = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _forOwn = _interopRequireDefault(require("lodash/forOwn")); var _isNil = _interopRequireDefault(require("lodash/isNil")); var _console = _interopRequireDefault(require("console")); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } // M: Mandatory,必选 // api调用限流说明: https://lbs.amap.com/api/webservice/guide/tools/flowlevel var services = { // 地理/逆地理编码: https://lbs.amap.com/api/webservice/guide/api/georegeo geocode_geo: { name: '地理编码', method: 'GET', url: 'https://restapi.amap.com/v3/geocode/geo', parameters: { key: undefined, // M address: undefined, // M city: undefined, // M batch: false, sig: undefined, output: 'JSON', callback: null } }, geocode_regeo: { name: '逆地理编码', method: 'GET', url: 'https://restapi.amap.com/v3/geocode/regeo', parameters: { key: undefined, // M location: undefined, // M poitype: undefined, radius: 1000, extensions: 'base', batch: false, roadlevel: undefined, sig: undefined, output: 'JSON', callback: null, homeorcorp: 0 } }, // 路径规划: https://lbs.amap.com/api/webservice/guide/api/direction direction_walking: { name: '步行路径规划', method: 'GET', url: 'https://restapi.amap.com/v3/direction/walking', parameters: { key: undefined, // M origin: undefined, // M destination: undefined, // M sig: undefined, output: 'JSON', callback: null } }, direction_transit_integrated: { name: '公交路径规划', method: 'GET', url: 'https://restapi.amap.com/v3/direction/transit/integrated', parameters: { key: undefined // M } }, direction_driving: { name: '驾车路径规划', method: 'GET', url: 'https://restapi.amap.com/v3/direction/driving', parameters: { key: undefined // M } }, direction_bicycling: { name: '骑行路径规划', method: 'GET', url: 'https://restapi.amap.com/v4/direction/bicycling', parameters: { key: undefined // M } }, direction_truck: { name: '货车路径规划', method: 'GET', url: 'https://restapi.amap.com/v4/direction/truck', parameters: { key: undefined // M } }, distance: { name: '距离测量', method: 'GET', url: 'https://restapi.amap.com/v3/distance', parameters: { key: undefined // M } }, // 行政区域查询: https://lbs.amap.com/api/webservice/guide/api/district config_district: { name: '行政区域查询', method: 'GET', url: 'https://restapi.amap.com/v3/config/district', parameters: { key: undefined // M } }, // 搜索POI: https://lbs.amap.com/api/webservice/guide/api/search place_text: { name: '关键字搜索', method: 'GET', url: 'https://restapi.amap.com/v3/place/text', parameters: { key: undefined // M } }, place_around: { name: '周边搜索', method: 'GET', url: 'https://restapi.amap.com/v3/place/around', parameters: { key: undefined // M } }, place_polygon: { name: '多边形搜索', method: 'GET', url: 'https://restapi.amap.com/v3/place/polygon', parameters: { key: undefined // M } }, place_detail: { name: 'ID查询', method: 'GET', url: 'https://restapi.amap.com/v3/place/detail', parameters: { key: undefined // M } }, // IP定位: https://lbs.amap.com/api/webservice/guide/api/ipconfig ip: { name: 'IP定位', method: 'GET', url: 'https://restapi.amap.com/v3/ip', parameters: { key: undefined // M } }, // 抓路服务: https://lbs.amap.com/api/webservice/guide/api/autograsp autograsp: { name: '抓路服务', method: 'GET', url: 'https://restapi.amap.com/v3/autograsp', parameters: { key: undefined // M } }, // 批量请求接口: https://lbs.amap.com/api/webservice/guide/api/batchrequest batch: { name: '批量请求接口', method: 'POST', url: 'https://restapi.amap.com/v3/batch', parameters: { key: undefined // M }, body: { ops: [{ url: '/v3/place/around?offset=10&page=1&key=<您的key>&location=116.50394379585519,39.278209477408794&output=json&radius=100000&types=080000' }, { url: '/v3/place/around?offset=10&page=1&key=<您的key>&location=118.50394379585519,39.278209477408794&output=json&radius=100000&types=080000' }] } }, // 静态地图: https://lbs.amap.com/api/webservice/guide/api/staticmaps staticmap: { name: '静态地图', method: 'GET', url: 'https://restapi.amap.com/v3/staticmap', parameters: { key: undefined // M } }, // 坐标转换: https://lbs.amap.com/api/webservice/guide/api/convert assistant_coordinate_convert: { name: '坐标转换', method: 'GET', url: 'https://restapi.amap.com/v3/assistant/coordinate/convert', parameters: { key: undefined // M } }, // 天气查询: https://lbs.amap.com/api/webservice/guide/api/weatherinfo weather_weatherInfo: { name: '天气查询', method: 'GET', url: 'https://restapi.amap.com/v3/weather/weatherInfo', parameters: { key: undefined // M } }, // 输入提示: https://lbs.amap.com/api/webservice/guide/api/inputtips assistant_inputtips: { name: '输入提示', method: 'GET', url: 'https://restapi.amap.com/v3/assistant/inputtips', parameters: { key: undefined // M } }, // 交通态势: https://lbs.amap.com/api/webservice/guide/api/trafficstatus traffic_status_rectangle: { name: '矩形区域交通态势', method: 'GET', url: 'https://restapi.amap.com/v3/traffic/status/rectangle', parameters: { key: undefined // M } }, traffic_status_circle: { name: '圆形区域交通态势', method: 'GET', url: 'https://restapi.amap.com/v3/traffic/status/circle', parameters: { key: undefined // M } }, traffic_status_road: { name: '指定线路交通态势', method: 'GET', url: 'https://restapi.amap.com/v3/traffic/status/road', parameters: { key: undefined // M } }, // 地理围栏: https://lbs.amap.com/api/webservice/guide/api/geofence_service geofence_meta_post: { name: '创建围栏', method: 'POST', url: 'https://restapi.amap.com/v4/geofence/meta', parameters: { key: undefined // M }, body: { name: undefined //M } }, geofence_meta_get: { name: '查询围栏', method: 'GET', url: 'https://restapi.amap.com/v4/geofence/meta', parameters: { key: undefined // M } }, geofence_meta_patch: { name: '更新围栏', method: 'POST ', // PATCH url: 'https://restapi.amap.com/v4/geofence/meta', parameters: { key: undefined, // M gid: undefined, // M method: undefined // 'patch' }, body: { name: undefined //M } }, geofence_meta_patch2: { name: '围栏启动&停止', method: 'POST ', // PATCH url: 'https://restapi.amap.com/v4/geofence/meta', parameters: { key: undefined, // M gid: undefined, //M method: undefined //'patch' }, body: { name: undefined //M } }, geofence_meta_delete: { name: '删除围栏', method: 'DELETE ', // POST url: 'https://restapi.amap.com/v4/geofence/meta', parameters: { key: undefined, // M gid: undefined, //M method: undefined //'delete' }, body: { name: undefined //M } }, geofence_status: { name: '围栏设备监控', method: 'GET', url: 'https://restapi.amap.com/v4/geofence/status', parameters: { key: undefined, // M diu: undefined, // M uid: undefined, locations: undefined, // M sig: undefined } }, // 轨迹纠偏: https://lbs.amap.com/api/webservice/guide/api/grasproad grasproad_driving: { name: '轨迹纠偏', method: 'POST', url: 'https://restapi.amap.com/v4/grasproad/driving', parameters: { key: undefined // M }, body: { x: undefined, // M y: undefined, // M ag: undefined, // M tm: undefined, // M sp: undefined // M } } }; exports.services = services; var infocode = { 10000: { info: 'OK', desc: '请求正常', suggest: '请求正常' }, 10001: { info: 'INVALID_USER_KEY', desc: 'key不正确或过期', suggest: '开发者发起请求时,传入的key不正确或者过期 ' }, 10002: { info: 'SERVICE_NOT_AVAILABLE', desc: '没有权限使用相应的服务或者请求接口的路径拼写错误', suggest: '1.开发者没有权限使用相应的服务,例如:开发者申请了WEB定位功能的key,却使用该key访问逆地理编码功能时,就会返回该错误。反之亦然。2.开发者请求接口的路径拼写错误。例如:正确的https://restapi.amap.com/v3/ip在程序中被拼装写了https://restapi.amap.com/vv3/ip"' } }; exports.infocode = infocode; var getRequest = function getRequest(service, parameters, body) { if (!service) return null; var option = {}; var name = service.name, url = service.url, method = service.method, dfParameters = service.parameters, dfBody = service.body; var destParameters = _objectSpread(_objectSpread({}, dfParameters || {}), parameters || {}); // 组建url中参数 var paramArr = []; (0, _forOwn.default)(destParameters, function (value, key) { if (!(0, _isNil.default)(value)) { paramArr.push(key + '=' + value); } }); if (paramArr.length > 0) { url += '?' + paramArr.join('&'); } // 组建option if (method === 'GET') { option = { credentials: 'include', method: method, headers: { 'Content-Type': 'application/json' } }; } else if (method === 'POST' || method === 'PUT' || method === 'PATCH') { var destBody = _objectSpread(_objectSpread({}, dfBody || {}), body || {}); option = { credentials: 'include', method: method, headers: { 'Content-Type': 'application/json' }, body: destBody }; } else { _console.default.log('error! not support method=' + method + ' of ' + name); } return { url: url, option: option }; }; exports.getRequest = getRequest;