腾讯地图api

// 引入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
}
 

jdk下载qqmap-wx-jssdk

猜你喜欢

转载自blog.csdn.net/weixin_45932157/article/details/125183914