在控制台里面创建自己的应用,应用创建好了得到一个key。
我们可以看到,个人账户,对地图api的调用次数是受到严格控制了,每日200次。
然后:
申请地图API 的位置搜索接口权限。
点击应用管理里面,申请权限。设置 serviceAPI权限。采用签名的方式。
采用签名方式,可以在服务器端调用腾讯地图的api接口,否则只能再前端js上调用了。
如果是,小程序上使用,还需要填写小程序的 key。 这里提供一个思路,其实小程序上获取数据,并没有服务器上方便。所以,尽量把前端的功能,移动到服务器上实现。
所以,我们在服务器上获取某个位置的周边POI数据;
现在接口和权限都有了,就是代码上实现了。
下面是一个PHP端的代码
class MapSearch{
public function keyword($keyword,$latitude = "25.260669",$longitude="110.180669"){
load()->func('communication');
$category = [
'交通'=>"category=公交车站",
'教育'=>"category=中学,小学,幼儿园",
'医疗'=>"category=综合医院,急救中心,社区医院",
'购物'=>"category=综合商场,超市",
'休闲'=>"category=电影院,户外活动,游乐场",
];
$params =[
//https://lbs.qq.com/dev/console/application/mine
//腾讯地图服务api控制台申请应用得到的key
'key'=>'2ENBZ-2P5KN-KHCFW-S6WLJ-*********', //
'boundary'=> "nearby({$latitude},{$longitude},1000)",
'page_size'=> 20,
'page_index'=> 1,
'keyword'=> $keyword,
'filter' => $category[$keyword] ,
];
//webserviceAPI接口采用签名方式,才能在服务器端获取接口数据
$sk = "1YpYc0z7sSPtvx6JaypAcVOtsbU***";
$host = "https://apis.map.qq.com";
$path = "/ws/place/v1/search";
ksort($params);
$querystr= $signstr = $dot = "";
foreach($params as $key=> $val){
$querystr.=$dot.$key."=" .urlencode($val);
$signstr.=$dot.$key."=".$val;
$dot = "&";
}
$sig = md5($path."?". $signstr.$sk);
$ret = file_get_contents($host.$path."?".$querystr ."&sig=".$sig);
$save_path = IA_ROOT. "/addons/kbwdl_shequzufang/vender/";
file_put_contents($save_path.'mapsearch.json', $ret);
}
}
好了,上面的代码是 在微擎的插件里面 实现获取某个坐标点 周围的 交通,教育,医疗,购物和休闲的POI数据方法
感谢您的阅读,希望对您 有所帮助。