微信爱帮周边查询
来源:互联网 发布:javascript 质数 编辑:程序博客网 时间:2024/06/02 15:03
想做个微信小工具方便自己查找东西,通过上传经纬度即可搜索周边,例如ATM 餐馆之类的
之前接触的爱帮有这个接口,百度的也有.我写的是爱帮的,
/** * WxDaoImpl * * @author xuyw * @email xyw10000@163.com * @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
参数说明
参数 类型 是否可选 意义 备注 citystring否城市 astring是地址地址分为区域地址(如海淀区)和点地址(如安全大厦),区域地址的查询不受距离参数as的限制;若是点地址,则以此作为中心点,以as为半径的区域内搜索lngfloat是经度地址的经度latfloat是纬度地址的纬度qstring是关键字如:餐馆、ktv、火车站、北京饭店catestring是类别限于爱帮类别列表rcint是排序方法1:默认排序,根据综合因素排序; 2:按距离排序; 3:按可信度排序; 5:按热度排序; 6:按照星级排序; 注:由于爱帮会根据查询分析将更匹配和准确的结果放在前面,以上排序仅作参考使用asint是距离限制0:无限制,默认; 负数:建议限制距离为其绝对值,但搜索引擎若认为结果不好则扩展至全市搜索; 正数:强制在此距离范围内fromint是返回结果在总结果的起始位置最小为1,默认为1,(最多为300)toint是返回结果在总结果中的结束位置默认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_numint检索的结果总数检索中所有匹配的记录数量totalint总记录数接口返回的商户记录总数(最多300)result_numint返回的记录数当前请求返回的结果数量web_urlstring爱帮web站对应url wap_urlstring爱帮wap站对应url idstring商户ID爱帮商户ID的格式是INT-INT,即中短线连接的两个整数namestring商户名 addrstring商户地址 telstring商户电话号码 catestring商户类别可为多个,以半角分号;(英文分号)分隔ratefloat商户星级范围1~5,0表示未评级costint人均消费单位:元,0表示无消费或未知消费descstring商户简介 distint与中心点距离单位是千米,-1表示距离无效lngfloat经度商户所在位置的经度latfloat纬度商户所在位置的纬度img_urlstring商户图片url
昨天刚写了这个功能 详情见 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)) {// 获取根节点下的子节点bizsIterator 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.jpgid : 693550581-432645732desc : 滋味楼位于近郊高新开发区火炬大道近丰源集团大厦,主要经营赣南菜,农家菜,菜有点特色,口味...rate : 4cate : 美食;其他美食tel : 0791-8196688name : 滋味楼lng : 115.9614addr : 近郊高新开发区火炬大道(近丰源集团大厦)cost : 43lat : 28.69648dist : 0.3img_url : id : 1232117961-423760332desc : rate : 0cate : 美食;其他美食tel : name : 渔味名厨lng : 115.95992addr : 青山湖区火炬二路罗万罗谢村233号cost : 0lat : 28.693348dist : 0.3img_url : id : 285771922-419797984desc : rate : 0cate : 小吃快餐;美食;其他小吃tel : 18779178698name : 广昌水饺lng : 115.96064addr : 近郊高新区火炬二路(纬泰超市西边斜对面)cost : 0lat : 28.69358dist : 0.4img_url : id : 293706066-420217555desc : 农妇柴房,南昌市是一家知名度很高的风味餐厅。价格比较便宜、环境不错、服务态度也很好。主要...rate : 0cate : 美食;其他美食tel : name : 农妇柴房lng : 115.960198addr : 高新北大道600号罗万村(近圆中源大酒店)cost : 30lat : 28.693144dist : 0.4img_url : id : 1805588933-943974780desc : rate : 0cate : 粤菜;茶餐厅;美食tel : name : 避风塘(火炬二路店)lng : 115.95865addr : 青山湖区火炬二路cost : 0lat : 28.69278dist : 0.4img_url : id : 442301627-443221322desc : rate : 0cate : 美食;甜点饮品tel : name : 金冠蛋糕(火炬二路店)lng : 115.95915addr : 青山湖区火炬二路cost : 0lat : 28.69244dist : 0.4img_url : id : 435466635-435623173desc : rate : 0cate : 美食;其他美食tel : name : 鱼米之香lng : 115.96237addr : 青山湖区火炬二路406号(近京东大道)cost : 0lat : 28.69389dist : 0.5img_url : id : 559255524-424804592desc : rate : 0cate : 小吃快餐;美食;其他小吃tel : name : 大食头白领快餐(艾湖店)lng : 115.96237addr : 青山湖区火炬二路cost : 0lat : 28.69389dist : 0.5img_url : id : 1227347689-423256140desc : rate : 0cate : 美食;小吃快餐;湖北菜;快餐;火锅;其他火锅tel : name : 湖北风味小吃lng : 115.96237addr : 青山湖区火炬二路附近cost : 0lat : 28.69389dist : 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 请求
5 0
- 微信爱帮周边查询
- 周边信息查询
- geohash 周边查询
- 基于Mapabc API的周边查询应用
- 周边wifi查询api调用代码示例
- 周边公交站台接口 查询附近的公交站台
- 百度POI实现周边搜索及公交路线查询
- Android基于百度地图来实现周边公交的查询(二)
- Android studio 百度地图开发(5)查询周边服务(加油站)
- mogoTemplate 模板 实现mongodb java的操作 ,根据经纬度查询周边
- 周边控件
- 微信摇一摇周边
- Volley周边
- 树莓派周边
- 利用Google map API 查询出当前地址的周边信息(学校,餐厅,地铁站,公交站等等)
- 周边美食api 周边美食餐厅检索
- 周边冷清清
- Functor——周边
- oracle11g下清理临时表空间
- Java类加载原理解析
- 开博第一篇文章
- OCP 1Z0 052 170
- Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
- 微信爱帮周边查询
- Install CentOS 5 to a USB Flash Drive in Windows
- 使用动态代理API-给抽象数据类型提供强类型
- 在UIView中添加点击事件
- jqPlot图表插件使用说明(一)
- 采用ITIL的三大理由
- 对初学者有用的10个Git技巧
- 额头解套日记
- EditPlus删除空行、空段落的正则表达式