微信,问题。微信公众平台接口获取用户发送的地理位置xml

xianglei1130 2013-03-12 03:38:31
我要实现的功能就是,当用户向我的公众平台发送一个当前位置,我要在卫星API中获取这个位置的经度纬度(x,y)然后通过这个经纬度接百度地图接口查询这个位置附近的饭店有哪些。

说白了,就是食神摇摇的那个功能。 这个我遇到问题了。

先贴上,用户向公众平台发送的位置的xml

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1351776360</CreateTime>
<MsgType><![CDATA[location]]></MsgType>
<Location_X>23.134521</Location_X>
<Location_Y>113.358803</Location_Y>
<Scale>20</Scale>
<Label><![CDATA[位置信息]]></Label>
</xml>


ToUserName 消息接收方微信号,一般为公众平台账号微信号
FromUserName 消息发送方微信号
CreateTime 消息创建时间
MsgType 消息类型,地理位置为location
Location_X 地理位置纬度
Location_Y 地理位置经度
Scale 地图缩放大小
Label 地理位置信息


我如何在微信API中获取经纬度? 如何在百度地图中通过该经纬度查询附近的饭店? 希望有大神解答,有demo更好。非常感谢
...全文
47159 46 打赏 收藏 转发到动态 举报
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
放胆往前冲 2015-09-21
  • 打赏
  • 举报
回复
另外,微信获取的经纬度调用百度地图定位上有偏差,得换算下。
放胆往前冲 2015-09-21
  • 打赏
  • 举报
回复
看看这个: http://developer.baidu.com/map/index.php?title=car/api/surrounding keyword =饭店 就可以查到
dotnba 2015-08-12
  • 打赏
  • 举报
回复
目前位置直接支持发送位置。 public override IResponseMessageBase OnLocationRequest(RequestMessageLocation requestMessage) { // var responseMessageText = base.CreateResponseMessage<ResponseMessageText>(); responseMessageText.Content = "当前位置:" + requestMessage.Label; return responseMessageText; }
baidu_28716473 2015-06-03
  • 打赏
  • 举报
回复
楼主.....求领教微信地址接口
coollmk 2015-05-08
  • 打赏
  • 举报
回复
else if(eventType.equals(MessageUtil.EVENT_TYPE_LOCATION)){ String lng=requestMap.get("Longitude");//经度 String lat=requestMap.get("Latitude");//纬度 AddressComponent a= new AddressComponent(); a=BaiduMapUtil.convertCoord(requestMap.get("Longitude"), requestMap.get("Latitude")); Map<String,String> map=BaiduMapUtil.getCity(a.getBdLng(), a.getBdLat()); SoapManageProxy smp = new SoapManageProxy(); AddressComponentResp ar=new AddressComponentResp(); ar.setBdLat(a.getBdLat()); ar.setBdLng(a.getBdLng()); ar.setCity(map.get("city")); ar.setOpenId(requestMap.get("FromUserName")); ar.setLat(lat); ar.setLng(lng); AddressComponentResp ars=smp.getAddressByOpenId(requestMap.get("FromUserName")); if(ars==null){ int result=smp.addAddress(ar); if(result==1){ log.info("插入定位地址成功"); } }else{ int result=smp.updateAddress(ar); if(result==1){ log.info("更新定位地址成功"); } } } 我这边现在得不到他返回的location xml 很蛋疼,在测试号可以
RainsJin 2015-04-19
  • 打赏
  • 举报
回复
我也在搞这个 围观下
hazhijaio 2015-01-24
  • 打赏
  • 举报
回复
返回的数据格式可以这样写:

$resultStr ="<xml>
 <ToUserName><![CDATA[$FromUserName]]></ToUserName>
 <FromUserName><![CDATA[$ToUserName]]></FromUserName>
 <CreateTime>$time</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[$content]]></Content>
<FuncFlag>0</FuncFlag>
 </xml> ";
qq_14840993 2014-09-10
  • 打赏
  • 举报
回复
看了你们贴这么多代码 有没有人能贴个完整点的啊 Java代码 谢谢大神们了
十二桥 2014-09-08
  • 打赏
  • 举报
回复
引用 37 楼 z1313586 的回复:
我碰到的问题是,微信上得到的经纬度, 获取位置 与通过百度地图api 获取的位置 不一样 你的问题解决了吗
你好,能把你获取位置的代码分享下吗,我根据微信api写的获取不到。 这是我的代码:
private function dealLocation($postObj){
		$wzx=$postObj->Latitude;
                $wzy=$postObj->Longitude;
		$contentStr ="你的经度是{$wzx},纬度是{$wzy},大浦洞已锁定";
		$resultStr=$this->transform($postObj,$contentStr);
		return $resultStr;
	}
z1313586 2014-09-06
  • 打赏
  • 举报
回复
我碰到的问题是,微信上得到的经纬度, 获取位置 与通过百度地图api 获取的位置 不一样 你的问题解决了吗
cj1987524163 2014-08-07
  • 打赏
  • 举报
回复
虽然帖子时间有点遥远,百度用的是自己的坐标系,和其他坐标系有点便宜,手机GPS获取的经纬度,也就是4326坐标系,和国内大地2000坐标系差不多,和谷歌是一样,百度提供了坐标系转换公式,直接调研转换公式就可以将经纬度转换成百度的坐标系。
屌丝不哭 2014-05-22
  • 打赏
  • 举报
回复
引用 9 楼 xianglei1130 的回复:
[quote=引用 8 楼 jikl1982 的回复:] 百度地图的API不是只能用js脚本来获取的吗?那么微信post过来的时候,你是如何调用百度地图API来执行js的?
不需要执行js,我调用的接口直接在url上加参数,然后获取返回值,将所需数据循环出来即可![/quote] 百度地图拼URL获取地址速度回很慢。
早餐不傻缺 2014-04-26
  • 打赏
  • 举报
回复
我试了好长时间了 1、微信的公众平台的主动获得用户地理位置成功率很低(听别人说只GPS所以低); 2、微信浏览器屏蔽了html5定位(google提供)的功能; 3、微信自己的定位是soso地图,坐标转换啥的、反正他本身也不准、 综上所述,我了个大槽、
java_alone 2014-03-17
  • 打赏
  • 举报
回复
引用 6 楼 jikl1982 的回复:
读取xml数据并获取经纬度坐标不难,问题是他这个xml中为什么给的lable字段是空的,不理解
label 标签为空 可能是因为 当你要发送 位置的时候 弹出地图的时候 你未等人家 把你地址读取好之后 就点击了 发送 ,读取位置会比较慢 最好等个 1、 2 分钟 让 他显示出你的具体地址后 再发送 就可以了
williamxia8 2014-01-15
  • 打赏
  • 举报
回复
大神,我想在自定义菜单里面添加一个【定位】,当微信用户点击这个菜单时,才主动获取他的地理位置信息。
王翊仰 2013-10-07
  • 打赏
  • 举报
回复
自己的代码片段以供参考: if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $type=$postObj->MsgType; $customrevent=$postObj->Event; $latitude = $postObj->Location_X; $longitude = $postObj->Location_Y; $keyword = trim($postObj->Content); $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; -------------------------------------------------------------------------- case "location": $contentStr="你的纬度是{$latitude},你的经度是{$longitude},我已经锁定!准备发射爱国者捣蛋!"; break; 有问题可以Q我:30339245
那爷们很纯 2013-09-03
  • 打赏
  • 举报
回复
大神,我有个服务号,也想实现和你差不多的功能,就是发送经纬度然后调用自己的数据库,但在这方面比较薄弱,大神可以教教我么,真的很想学!
缘在飞雪 2013-08-29
  • 打赏
  • 举报
回复
自愧不如啊!!!
xianglei1130 2013-08-27
  • 打赏
  • 举报
回复
引用 25 楼 yuefengkai 的回复:
我已经做出来 查出附近商户 但是不能显示附近商户的图片! 还请各位大牛告知,谢谢!
查看新版百度地图API属性,应该有这个属性。 值得注意的是,有图片的商家只是少数,大多数都还没有详细信息。
longxuu 2013-08-19
  • 打赏
  • 举报
回复
提取谷歌坐标转百度坐标的javascript API用于PHP等服务端语言
http://blog.csdn.net/longxuu/article/details/10063003
加载更多回复(24)

21,879

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧