不同的微信公众平台发布的内容和功能是不一样的,而决定这些不同的根本依据就是微信公众平台接口开发,这也是微信公众平台生命力所在。地图里面都有附近商家搜索的服务,有些人就想要利用微信也实现这一服务,那么就得进行微信公众平台接口开发。
百度地图Place API 是一类简单的HTTP接口,用于返回查询某个区域的某类POI数据,且提供单个POI的详情查询服务,用户可以使用C#、C++、Java等开发语言发送HTTP请求且接收json、xml的数据。
Place API 提供区域检索POI服务、POI详情服务与团购信息检索服务、商家团购详情查询。区域检索POI服务提供三种区域检索方法:城市内检索、矩形检索、圆形区域检索。
我们使用圆形区域检索来实现附近搜索功能。
place区域检索POI服务接口如下:
http://api.map.baidu.com/place/v2/search
参数
是否必须
默认值
格式举例
含义
location
是
无
38.76623,116.43213
lat<纬度>,lng<经度>
周边检索中心点,不支持多个点
radius(r)
否
无
2000
周边检索半径,单位为米
q(query)
是
无
中关村、ATM、百度大厦
检索关键字,周边检索和矩形区域内检索支持多个关键字并集检索,不同关键字间以$符号分隔,最多支持10个关键字检索。如:”银行$酒店”。
tag
否
无
日式烧烤/铁板烧、朝外大街
标签项,与q组合进行检索
output
否
xml
json或xml
输出格式为json或者xml
scope
是
检索结果详细程度。取值为1 或空,则返回基本信息;取值为2,返回检索POI详细信息
filter
否
无
filter=industry_type:cater
|sort_name:price
|sort_rule:0
|price_section:100,200
|groupon:0
|discount:0
检索过滤条件,当scope取值为2时,可以设置filter进行排序。
industry_type:行业类型
sort_name:排序字段
sort_rule:排序规则,取值如下:0:从高到低,1:从低到高;
price_section:价格区间;
groupon:是否有团购,1为有团购,0为无团购;
discount:是否打折,1为有打折,0为无打折;
page_size
否
10
10
范围记录数量,默认为10条记录,最大返回20条。多关键字检索时,返回的记录数为关键字个数*page_size。
page_num
否
0
0、1、2
分页页码,默认为0,0代表第一页,1代表第二页,以此类推。
ak
是
无
E4805d16520de693a3fe707cdc962045
用户的访问密钥,必填项。v2之前该属性为key。
sn
否
无
用户的权限签名。
timestamp
否
无
设置sn后该值必填。
调用举例如下:
http://api.map.baidu.com/place/v2/search?ak=MgBALVVeCd8THVBi6gPdvsvG&output=json&query=%E9%93%B6%E8%A1%8C&page_size=5&page_num=0&scope=2&location=39.915,116.404&radius=2000&filter=sort_name:distance
二、程序实现
百度地图类定义如下
复制代码
class baiduMapClient
{
private $api_server_url;
private $auth_params;
public function __construct()
{
$this->api_server_url = "http://api.map.baidu.com/";
$this->auth_params = array();
$this->auth_params['key'] = "401f9a693dd267dd9a4661ec0895fb20";
$this->auth_params['output'] = "json";
}
public function Geocoding_coordinate_address($location)
{
return $this->call("geocoder", array("location" => $location));
}
//http://api.map.baidu.com/place/search?&query=眼镜&location=39.915,116.404&radius=3000&output=json&key=37492c0ee6f924cb5e934fa08c6b1676
public function Place_search($query, $location, $radius)
{
return $this->call("place/search", array("query" => $query, "location" => $location, "radius" => $radius));
}
protected function call($method, $params = array())
{
$headers = array(
"User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1",
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language: en-us,en;q=0.5",
//"Accept-Encoding: gzip, deflate",
"Referer: http://developer.baidu.com/"
);
$params = array_merge($this->auth_params, $params);
$url = $this->api_server_url . "$method?".http_build_query($params);
if (DEBUG_MODE){echo "REQUEST: $url" . "n";}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);
curl_close($ch);
$result = null;
if (!empty($data)){
if (DEBUG_MODE){
echo "RETURN: " . $data . "n";
}
$result = json_decode($data);
}
else{
echo "cURL Error:". curl_error($ch);
}
return $result;
}
}
复制代码
获取附近的调用代码如下:
复制代码
function catchEntitiesFromLocation($entity, $x, $y, $radius)
{
$mapObj = new baiduMapClient();
$search = $mapObj->Place_search($entity, $x.",".$y, $radius);
$results = $search->results;
for ($i = 0; $i < count($results); $i++) {
$distance = getDistance($x, $y, $results[$i]->location->lat, $results[$i]->location->lng);
$shopSortArrays[$distance] = array(
"Title"=>"【".$results[$i]->name."】<".$distance."M>".$results[$i]->address.(isset($results[$i]->telephone)?" ".$results[$i]->telephone:""),
"Description"=>"",
"PicUrl"=>"",
"Url"=>"");
}
ksort($shopSortArrays);//排序
$shopArray = array();
foreach ($shopSortArrays as $key => $value) {
$shopArray[] = array(
"title" => $value["Title"],
"description" => $value["Description"],
"pic" => $value["PicUrl"],
"url" => $value["Url"],
);
if (count($shopArray) > 6){break;}
}
return $shopArray;
}
复制代码
微信公众平台接口开发出来的功能要与正规微信公众平台相适应,不能够太过突兀或是完全不搭的,这样是没有效果的。如果你有需要供接口开发、微信公众平台接口开发、微信接口开发平台等服务的话,建议你可以通过网络找寻到“一品威客网”,一品威客网上有众多开发设计威客为你提供接口开发服务。
交易额: 186.79万元
无 |河南省 |洛阳市 |洛龙区
交易额: 151.77万元
无 |浙江省 |台州市 |玉环县
交易额: 110.67万元
工作室 |浙江省 |温州市 |瓯海区
交易额: 101.38万元
公司 |广东省 |东莞市 |东莞市
成为一品威客服务商,百万订单等您来有奖注册中
价格是多少?怎样找到合适的人才?
¥1000 已有2人投标
¥5000 已有9人投标
¥3000 已有2人投标
¥5000 已有0人投标
¥200 已有0人投标
¥1000 已有3人投标
¥10000 已有3人投标
¥1000 已有4人投标