微信爱帮周边查询

想做个微信小工具方便自己查找东西,通过上传经纬度即可搜索周边,例如ATM 餐馆之类的

之前接触的爱帮有这个接口,百度的也有.我写的是爱帮的,

/**
 * WxDaoImpl
 *
 * @author xuyw
 * @email [email protected]
 * @date 2014-06-22
 */
  • 说明

    商户搜索接口根据指定的城市、地址(或坐标)和关键词等参数查询满足条件的商户,返回商户列表。如果不指定地址(或坐标),则在全市搜索。若不指定关键字,则返回地址周边的商户。地址(或坐标)和关键字必须至少有一个。

    最多返回前300个满足指定搜索条件的商户。

  • 形式

    http://openapi.aibang.com/search

    例如:http://openapi.aibang.com/search?app_key=f41c8afccc586de03a99c86097e98ccb&city=%E5%8C%97%E4%BA%AC&q=%E9%A4%90%E9%A6%86

    参数说明
    参数 类型 是否可选 意义 备注
    city string 城市  
    a string 地址 地址分为区域地址(如海淀区)和点地址(如安全大厦),区域地址的查询不受距离参数as的限制;若是点地址,则以此作为中心点,以as为半径的区域内搜索
    lng float 经度 地址的经度
    lat float 纬度 地址的纬度
    q string 关键字 如:餐馆、ktv、火车站、北京饭店
    cate string 类别 限于爱帮类别列表
    rc int 排序方法 1:默认排序,根据综合因素排序; 2:按距离排序; 3:按可信度排序; 5:按热度排序; 6:按照星级排序; 注:由于爱帮会根据查询分析将更匹配和准确的结果放在前面,以上排序仅作参考使用
    as int 距离限制 0:无限制,默认; 负数:建议限制距离为其绝对值,但搜索引擎若认为结果不好则扩展至全市搜索; 正数:强制在此距离范围内
    from int 返回结果在总结果的起始位置 最小为1,默认为1,(最多为300)
    to int 返回结果在总结果中的结束位置 默认from+9,(最多为300)。结果为from和to组成闭区间[from, to]

    附加说明:参数中地址a和经纬度lng|lat都可以指定中心点,如果只指定了a而没有lng|lat,则在a指定的地址范围内查询,搜索引擎会根据地址a计算对应的中心点;如果只指定了lng|lat而没有a,则以lng|lat指定的经纬度作为中心点;如果同时指定a和lng|lat,则在地址a范围内检索,同时把lng|lat指定的中心点作为a对应的中心点。

  • 返回内容

    该API返回一定数量的商户信息,如下:

     <?xml version="1.0" encoding="utf-8" ?>
        <root>
            <index_num>121286</index_num>
            <total>300</total>
            <result_num>10</result_num>
            <web_url>http://www.aibang.com</web_url>
            <wap_url>http://wap.aibang.com</wap_url>
            <bizs>
                <biz>
                    <id>17700376-419866368</id>
                    <name>巫山烤全鱼(交大店)</name>
                    <addr>西城区西直门交大东路46号(佰金KTV对面胡同里)</addr>
                    <tel>010-51562760</tel>
                    <cate>烤鱼;美食;川菜;烧烤</cate>
                    <rate>4</rate>
                    <cost>0</cost>
                    <desc>江边城外·巫山烤全鱼 北京江边城外餐饮管理有限公司,成立于2006年,是一家专业的连锁餐饮...</desc>
                    <dist>-1</dist>
                    <lng>116.3492255</lng>
                    <lat>39.950558</lat>
                    <img_url>http://img0.aibangjuxin.com/ipic/f5f9631bec2d9fea_8.jpg</img_url>
                </biz>
                ...
            </bizs>
        </root>

    字段 类型 意义 备注
    index_num int 检索的结果总数 检索中所有匹配的记录数量
    total int 总记录数 接口返回的商户记录总数(最多300)
    result_num int 返回的记录数 当前请求返回的结果数量
    web_url string 爱帮web站对应url  
    wap_url string 爱帮wap站对应url  
    id string 商户ID 爱帮商户ID的格式是INT-INT,即中短线连接的两个整数
    name string 商户名  
    addr string 商户地址  
    tel string 商户电话号码  
    cate string 商户类别 可为多个,以半角分号;(英文分号)分隔
    rate float 商户星级 范围1~5,0表示未评级
    cost int 人均消费 单位:元,0表示无消费或未知消费
    desc string 商户简介  
    dist int 与中心点距离 单位是千米,-1表示距离无效
    lng float 经度 商户所在位置的经度
    lat float 纬度 商户所在位置的纬度
    img_url string 商户图片url  

看到上面api必须输入城市名,我想减少微信上的操作,于是打算用经纬度得到城市,

昨天刚写了这个功能 详情见 http://blog.csdn.net/xuyw10000/article/details/33342489

附上代码

public static List searchFj(String q, String city, String lng, String lat)
			throws Exception {
		List list = new ArrayList();
		String str = HttpUtil.getRequest(SEARCH_FJ + "?from=1&to=9&rc=2",
				"app_key:" + Config.AIBANG_KEY, "city:" + city, "lng:" + lng,
				"lat:" + lat, "q:" + q);
		Document document = DocumentHelper.parseText(str);
		// 得到xml根元素
		Element root = document.getRootElement();
		// result_num表示搜索到的公交路线数
		String result_num = root.element("result_num").getText();
		if (!"0".equals(result_num)) {
			// 获取根节点下的子节点bizs
			Iterator bizs = root.element("bizs").elementIterator();
			while (bizs.hasNext()) {
				Map map = new HashMap();
				Element biz = (Element) bizs.next();
				List<Element> elementList = biz.elements();
				// 遍历所有子节点
				for (Element e : elementList)
					map.put(e.getName(), e.getText());

				list.add(map);
			}
		}
		return list;
	}

	public static void main(String[] args) throws Exception {
		List list = AiBangUtil.searchFj("餐馆", "南昌", "115.958458", "28.696117");
		for (int i = 0; i < list.size(); i++) {
			Map<Object, Object> map = (Map<Object, Object>) list.get(i);
			for (Map.Entry<Object, Object> entry : map.entrySet()) {
				System.out.println(entry.getKey() + " : " + entry.getValue());

			}
		}
	}

HttpUtil 见 http://blog.csdn.net/xuyw10000/article/details/33342489

返回结果集

img_url : http://img0.aibangjuxin.com/ipic/dd3d5d81c3f14036_8.jpg
id : 693550581-432645732
desc :   滋味楼位于近郊高新开发区火炬大道近丰源集团大厦,主要经营赣南菜,农家菜,菜有点特色,口味...
rate : 4
cate : 美食;其他美食
tel : 0791-8196688
name : 滋味楼
lng : 115.9614
addr : 近郊高新开发区火炬大道(近丰源集团大厦)
cost : 43
lat : 28.69648
dist : 0.3
img_url :
id : 1232117961-423760332
desc :
rate : 0
cate : 美食;其他美食
tel :
name : 渔味名厨
lng : 115.95992
addr : 青山湖区火炬二路罗万罗谢村233号
cost : 0
lat : 28.693348
dist : 0.3
img_url :
id : 285771922-419797984
desc :
rate : 0
cate : 小吃快餐;美食;其他小吃
tel : 18779178698
name : 广昌水饺
lng : 115.96064
addr : 近郊高新区火炬二路(纬泰超市西边斜对面)
cost : 0
lat : 28.69358
dist : 0.4
img_url :
id : 293706066-420217555
desc :   农妇柴房,南昌市是一家知名度很高的风味餐厅。价格比较便宜、环境不错、服务态度也很好。主要...
rate : 0
cate : 美食;其他美食
tel :
name : 农妇柴房
lng : 115.960198
addr : 高新北大道600号罗万村(近圆中源大酒店)
cost : 30
lat : 28.693144
dist : 0.4
img_url :
id : 1805588933-943974780
desc :
rate : 0
cate : 粤菜;茶餐厅;美食
tel :
name : 避风塘(火炬二路店)
lng : 115.95865
addr : 青山湖区火炬二路
cost : 0
lat : 28.69278
dist : 0.4
img_url :
id : 442301627-443221322
desc :
rate : 0
cate : 美食;甜点饮品
tel :
name : 金冠蛋糕(火炬二路店)
lng : 115.95915
addr : 青山湖区火炬二路
cost : 0
lat : 28.69244
dist : 0.4
img_url :
id : 435466635-435623173
desc :
rate : 0
cate : 美食;其他美食
tel :
name : 鱼米之香
lng : 115.96237
addr : 青山湖区火炬二路406号(近京东大道)
cost : 0
lat : 28.69389
dist : 0.5
img_url :
id : 559255524-424804592
desc :
rate : 0
cate : 小吃快餐;美食;其他小吃
tel :
name : 大食头白领快餐(艾湖店)
lng : 115.96237
addr : 青山湖区火炬二路
cost : 0
lat : 28.69389
dist : 0.5
img_url :
id : 1227347689-423256140
desc :
rate : 0
cate : 美食;小吃快餐;湖北菜;快餐;火锅;其他火锅
tel :
name : 湖北风味小吃
lng : 115.96237
addr : 青山湖区火炬二路附近
cost : 0
lat : 28.69389
dist : 0.5

将结果转换成xml在微信回复多图文

public String getWeather(Map map) {
		String message=null;
		String openid = map.get("FromUserName") + "";
		String toUserName = map.get("ToUserName") + "";
		String city = map.get("city") + "";
		JSONObject obj = BaiduUtil.getWeatherInfo(city);
		String status = obj.getString("status");
		if("success".equals(status)){//查找到了
			JSONArray jarray=obj.getJSONArray("results");
			int size=jarray.size();
			if(size>0){
				JSONObject j2=jarray.getJSONObject(0);
				JSONArray jarray2=j2.getJSONArray("weather_data");
				List<Article> articleList = new ArrayList<Article>();
				// 创建图文消息
				NewsMessage newsMessage = new NewsMessage();
				newsMessage.setToUserName(openid);
				newsMessage.setFromUserName(toUserName);
				newsMessage.setCreateTime(new Date().getTime());
				newsMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_NEWS);
				newsMessage.setFuncFlag(0);
				int size2=jarray2.size();
				for (int i = 0; i < jarray2.size(); i++) {
					JSONObject j3=jarray2.getJSONObject(i);
					String date=j3.getString("date");
					String weather=j3.getString("weather");
					String wind=j3.getString("wind");
					String temperature=j3.getString("temperature");
					String title="";
					String img_url=j3.getString("dayPictureUrl");
					if(i==0){
						title=date+" "+weather+" "+wind;
					}else{
						title=date+" "+weather+" "+temperature+" "+wind;
					}
					Article article = new Article();
					article.setTitle(title);
					article.setDescription("");
					article.setPicUrl(img_url);
					article.setUrl("http://blog.csdn.net/xuyw10000");
					articleList.add(article);
				}
				newsMessage.setArticleCount(size2);
				newsMessage.setArticles(articleList);
				message = MessageUtil.newsMessageToXml(newsMessage);
			}else{
				map.put("xuywMsg", "啊噢,找不到“"+city+"”的天气。");
				message=sendTextMessage(map);
			}
		}else{//无结果
			map.put("xuywMsg", "啊噢,这个地方百度都找不到。");
			message=sendTextMessage(map);
		}
		return message;
	}
/**
	 * 发送文本信息
	 *
	 * @param map
	 * @return
	 */
	public String sendTextMessage(Map map) {
		String openid = map.get("FromUserName") + "";
		String toUserName = map.get("ToUserName") + "";
		String xuywMsg = map.get("xuywMsg") + "";
		TextMessage textMessage = new TextMessage();
		textMessage.setToUserName(openid);
		textMessage.setFromUserName(toUserName);
		textMessage.setCreateTime(new Date().getTime());
		textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
		textMessage.setFuncFlag(0);
		textMessage.setContent(xuywMsg);
		return MessageUtil.textMessageToXml(textMessage);
	}

执行返回xml

<xml>
  <ToUserName><![CDATA[sadsdaewwaewea]]></ToUserName>
  <FromUserName><![CDATA[bbbbb]]></FromUserName>
  <CreateTime><![CDATA[1403495107127]]></CreateTime>
  <MsgType><![CDATA[news]]></MsgType>
  <FuncFlag><![CDATA[0]]></FuncFlag>
  <ArticleCount><![CDATA[9]]></ArticleCount>
  <Articles>
    <item>
      <Title><![CDATA[距离0.3千米]]></Title>
      <Description><![CDATA[近郊高新开发区火炬大道(近丰源集团大厦)]]></Description>
      <PicUrl><![CDATA[http://img0.aibangjuxin.com/ipic/dd3d5d81c3f14036_8.jpg]]></PicUrl>
      <Url><![CDATA[http://api.map.baidu.com/marker?location=28.69648,115.9614&title=滋味楼&content=近郊高新开发区火炬大道(近丰源集团大厦)&output=html]]></Url>
    </item>
    <item>
      <Title><![CDATA[距离0.3千米]]></Title>
      <Description><![CDATA[青山湖区火炬二路罗万罗谢村233号]]></Description>
      <PicUrl><![CDATA[http://xywwx.sinaapp.com/resource/img/nopic.jpg]]></PicUrl>
      <Url><![CDATA[http://api.map.baidu.com/marker?location=28.693348,115.95992&title=渔味名厨&content=青山湖区火炬二路罗万罗谢村233号&output=html]]></Url>
    </item>
    <item>
      <Title><![CDATA[距离0.4千米]]></Title>
      <Description><![CDATA[近郊高新区火炬二路(纬泰超市西边斜对面)]]></Description>
      <PicUrl><![CDATA[http://xywwx.sinaapp.com/resource/img/nopic.jpg]]></PicUrl>
      <Url><![CDATA[http://api.map.baidu.com/marker?location=28.69358,115.96064&title=广昌水饺&content=近郊高新区火炬二路(纬泰超市西边斜对面)&output=html]]></Url>
    </item>
    <item>
      <Title><![CDATA[距离0.4千米]]></Title>
      <Description><![CDATA[高新北大道600号罗万村(近圆中源大酒店)]]></Description>
      <PicUrl><![CDATA[http://xywwx.sinaapp.com/resource/img/nopic.jpg]]></PicUrl>
      <Url><![CDATA[http://api.map.baidu.com/marker?location=28.693144,115.960198&title=农妇柴房&content=高新北大道600号罗万村(近圆中源大酒店)&output=html]]></Url>
    </item>
    <item>
      <Title><![CDATA[距离0.4千米]]></Title>
      <Description><![CDATA[青山湖区火炬二路]]></Description>
      <PicUrl><![CDATA[http://xywwx.sinaapp.com/resource/img/nopic.jpg]]></PicUrl>
      <Url><![CDATA[http://api.map.baidu.com/marker?location=28.69278,115.95865&title=避风塘(火炬二路店)&content=青山湖区火炬二路&output=html]]></Url>
    </item>
    <item>
      <Title><![CDATA[距离0.4千米]]></Title>
      <Description><![CDATA[青山湖区火炬二路]]></Description>
      <PicUrl><![CDATA[http://xywwx.sinaapp.com/resource/img/nopic.jpg]]></PicUrl>
      <Url><![CDATA[http://api.map.baidu.com/marker?location=28.69244,115.95915&title=金冠蛋糕(火炬二路店)&content=青山湖区火炬二路&output=html]]></Url>
    </item>
    <item>
      <Title><![CDATA[距离0.5千米]]></Title>
      <Description><![CDATA[青山湖区火炬二路406号(近京东大道)]]></Description>
      <PicUrl><![CDATA[http://xywwx.sinaapp.com/resource/img/nopic.jpg]]></PicUrl>
      <Url><![CDATA[http://api.map.baidu.com/marker?location=28.69389,115.96237&title=鱼米之香&content=青山湖区火炬二路406号(近京东大道)&output=html]]></Url>
    </item>
    <item>
      <Title><![CDATA[距离0.5千米]]></Title>
      <Description><![CDATA[青山湖区火炬二路]]></Description>
      <PicUrl><![CDATA[http://xywwx.sinaapp.com/resource/img/nopic.jpg]]></PicUrl>
      <Url><![CDATA[http://api.map.baidu.com/marker?location=28.69389,115.96237&title=大食头白领快餐(艾湖店)&content=青山湖区火炬二路&output=html]]></Url>
    </item>
    <item>
      <Title><![CDATA[距离0.5千米]]></Title>
      <Description><![CDATA[青山湖区火炬二路附近]]></Description>
      <PicUrl><![CDATA[http://xywwx.sinaapp.com/resource/img/nopic.jpg]]></PicUrl>
      <Url><![CDATA[http://api.map.baidu.com/marker?location=28.69389,115.96237&title=湖北风味小吃&content=青山湖区火炬二路附近&output=html]]></Url>
    </item>
  </Articles>
</xml>

将项目部署sae 请求

微信爱帮周边查询,布布扣,bubuko.com

时间: 2024-10-26 03:27:54

微信爱帮周边查询的相关文章

爱帮公交查询之公交线路查询

今天,想在微信做一个公交查询的功能.到网上找了点资料,觉得爱帮挺好的于是注册了个帐号 api 页面 http://www.aibang.com/api/usage 公交线路查询 说明 公交线路查询,该接口根据关键字查询匹配的线路. 形式 http://openapi.aibang.com/bus/lines 例如:http://openapi.aibang.com/bus/lines?app_key=f41c8afccc586de03a99c86097e98ccb&city=%E5%8C%97%

Android应用源码公交查询周边搜索草堂助手

本项目是一个西安建筑科技大学的两个在校生的作品,主要实现了周边查询和公交查询,公交查询可以选择填写学校名,也可以选择在列表中寻找学校名,然后根据学校名,列出公交路径,有一个智能填充的选框,只要用户输入前两个字,就可以列出相应的学校名,另外还有文件浏览器.二维码图片解码.SQLite数据库的管理.网络状况检查.百度地图的使用等功能,项目编译版本4.4.2默认编码GBK. 下载地址:http://www.dwz.cn/yQiAH 源码各种功能运行截图

【云图】如何制作全国KTV查询系统?

摘要:本文以[唱吧]531麦霸音乐节为案例,详细解读了如何导入自有数据到高德云图,并进行检索和展示.最后,调起高德mobile地图来进行路线规划和周边查询. 本案例可以应用在微信开发平台,支付宝公众服务上,适合餐饮商家,汽车4S店,银行,停车场等业务. 由于使用高德云图+URI API的方式实现,开发者无需进行繁琐的数据库操作,即可实现自有数据的存储与检索. -------------------------------------------------------------- 一.数据准备

【百度地图API】小学生找哥哥——小学生没钱打车,所以此为公交查询功能

原文:[百度地图API]小学生找哥哥--小学生没钱打车,所以此为公交查询功能 任务描述: 有位在魏公村附近上小学的小朋友,要去北京邮电大学找哥哥.他身上钱很少,只够坐公交的.所以,百度地图API快帮帮他吧! 如何实现: 把地图中心定在魏公村,在视野范围内搜索小学. 搜索完毕后,点击出现的红色标注,在输入框中输入北京邮电大学,然后查询,即可得到公交路线图. 图示: 运行代码,点击这里. 点击公交按钮需要做的查询工作. 在这里,请大家一定注意,所有公交查询,只创建一次对象.不然会有很大的内存消耗哦~

效率篇-SQL自助查询平台

使用时间:2014-05 - 至今. 升级&变动:投入运作后没做任何修改变动,放养状态. 运行情况:内部环境下使用,日均分担DBA工作量500次+查询. 诞生背景:DBA人数-3,DBA除了做常规维护和数据库优化外,还需要花大量时间帮开发查询非敏感数据. 需求:1.查询不能影响线上数据库服务:2.与现有运维系统做Restful API对接: 3.不能接收数据超1000+查询,以防很容易恶意导数据:4.预防恶意操作(delete.update.create table等ddl). 对比对象:Php

百度地图 公交查询功能

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script&g

Arcgis for Js实现graphiclayer的空间查询(续)

上文中,实现了简单的针对graphiclayer的空间查询工作,在本节,将更加详细的介绍针对graphiclayer的空间查询.首先,空间查询的方式:提供多种类型的空间查询,包括点周边.线周边.面内等多种方式:其次,图形绘制完成后状态的展示:再次,结果的显示.实现后的结果如下: 点周边--输入缓冲区距离 点周边--查询结果 线周边--输入缓冲区距离 线周边--查询结果 面内--矩形 面内--圆形 面内--多边形 首先,绘制图形. var drawToolbar = new esri.toolba

关于百度地图周边雷达的回调函数会重复调用问题的解决方案

//构造请求参数,其中centerPt是自己的位置坐标 RadarNearbySearchOption option = newRadarNearbySearchOption().centerPt(pt).pageNum(pageIndex).radius(2000); //发起查询请求 mManager.nearbyInfoRequest(option); @Override publicvoidonGetNearbyInfoList(RadarNearbyResult result, Rad

Java处理excel根据某列的值查询,并将结果显示在其他列中

这是公司项目,需要帮客户查询员工用餐消费记录中每个员工所在的部门,并填入部门这一列.(如图) 根据每个员工的卡号,查询所在部门,再填入部门这一列.下面是实现代码:(具体变量值请根据自身需要进行修改) package cn.netmis.cmd; import cn.netmis.cmd.other.Xls;import cn.netmis.core.util.DBUtils;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.