// 引入SDK核心类
var QQMapWX = require('@/libs/qqmap-wx-jssdk.js');
// 实例化API核心类
var qqmapsdk = new QQMapWX({
key: '开发密钥(key)' // 必填
});
/**
* 地点搜索,搜索周边poi,比如:“酒店” “餐饮” “娱乐” “学校” 等等
*/
function search(){
return new Promise((resolve,reject)=>{
// 调用接口
qqmapsdk.search({
keyword: 'kfc', //搜索关键词
location: '39.980014,116.313972', //设置周边搜索中心点
success: function (res) {
//搜索成功后的回调
console.log(res,"搜索周边地址");
resolve(res);
},
fail: function (res) {
console.log(res);
reject(res);
},
complete: function (res){
console.log(res);
}
});
})
}
//关键词输入提示
function getsuggest(keyword) {
return new Promise((resolve,reject)=>{
//调用关键词提示接口
qqmapsdk.getSuggestion({
//获取输入框值并设置keyword参数
keyword: keyword, //用户输入的关键词,可设置固定值,如keyword:'KFC'
//region:'北京', //设置城市名,限制关键词所示的地域范围,非必填参数
success: function(res) {
//搜索成功后的回调
console.log(res,'触发关键词输入提示');
resolve(res);
},
fail: function(error) {
console.error(error);
reject(error);
},
complete: function(res) {
console.log(res);
}
});
})
}
//逆地址解析(坐标位置描述)
function reverseGeocoder(e) {
return new Promise((resolve,reject)=>{
qqmapsdk.reverseGeocoder({
location: e.detail.value.reverseGeo || '', //获取表单传入的位置坐标,不填默认当前位置,示例为string格式
//get_poi: 1, //是否返回周边POI列表:1.返回;0不返回(默认),非必须参数
success: function(res) {
//成功后的回调
console.log(res,'触发表单提交');
resolve(res);
},
fail: function(error) {
console.error(error);
reject(error);
},
complete: function(res) {
console.log(res);
}
})
})
}
//地址解析(地址转坐标)
function geocoder(address) {
return new Promise((resolve,reject)=>{
//调用地址解析接口
qqmapsdk.geocoder({
//获取表单传入地址
address: address, //地址参数,例:固定地址,address: '北京市海淀区彩和坊路海淀西大街74号'
success: function(res) {
//成功后的回调
console.log(res,'触发表单提交');
resolve(res);
},
fail: function(error) {
console.error(error);
reject(error);
},
complete: function(res) {
console.log(res);
}
})
})
}
//路线规划
function direction(start,dest) {
return new Promise((resolve,reject)=>{
//调用距离计算接口
qqmapsdk.direction({
mode: 'driving',//可选值:'driving'(驾车)、'walking'(步行)、'bicycling'(骑行),不填默认:'driving',可不填
//from参数不填默认当前地址
from: start,
to: dest,
success: function (res) {
console.log(res,'路线规划');
resolve(res);
},
fail: function (error) {
console.error(error);
reject(error);
},
complete: function (res) {
console.log(res);
}
});
})
}
//距离计算
function calculateDistance(e){
return new Promise((resolve,reject)=>{
//调用距离计算接口
qqmapsdk.calculateDistance({
//mode: 'driving',//可选值:'driving'(驾车)、'walking'(步行),不填默认:'walking',可不填
//from参数不填默认当前地址
//获取表单提交的经纬度并设置from和to参数(示例为string格式)
from: e.detail.value.start || '', //若起点有数据则采用起点坐标,若为空默认当前地址
to: e.detail.value.dest, //终点坐标
success: function(res,'距离计算') {
//成功后的回调
console.log(res);
resolve(res);
},
fail: function(error) {
console.error(error);
reject(error);
},
complete: function(res) {
console.log(res);
}
});
})
}
/**
* 获取城市列表
*/
function getCityList(){
return new Promise((resolve,reject)=>{
qqmapsdk.getCityList({
success: function(res) {
//成功后的回调
console.log(res,'获取城市列表');
console.log('省份数据:', res.result[0]); //打印省份数据
console.log('城市数据:', res.result[1]); //打印城市数据
console.log('区县数据:', res.result[2]); //打印区县数据
resolve(res);
},
fail: function(error) {
console.error(error);
reject(error);
},
complete: function(res) {
console.log(res);
}
});
})
}
//获取城市区县
function getDistrictByCityId(cityId){
return new Promise((resolve,reject)=>{
//调用获取城市列表接口
qqmapsdk.getDistrictByCityId({
// 传入对应省份ID获得城市数据,传入城市ID获得区县数据,依次类推
id: cityId, //对应接口getCityList返回数据的Id,如:北京是'110000'
success: function(res) {
//成功后的回调
console.log(res,'获取城市区县');
resolve(res);
},
fail: function(error) {
console.error(error);
reject(error);
},
complete: function(res) {
console.log(res);
}
});
})
}
module.exports={
search,
getsuggest,
reverseGeocoder,
geocoder,
direction,
calculateDistance,
getCityList,
getDistrictByCityId
}
腾讯地图api
猜你喜欢
转载自blog.csdn.net/weixin_45932157/article/details/125183914
今日推荐
周排行