zoukankan      html  css  js  c++  java
  • LBS开发

      功能:用户发送自动的位置,返回周围的厕所信息

      思路:根据用户的经纬度信息,调用百度地图的api,查询周围的厕所位置并且返回!

        步骤:进入百度地图官网注册账号,选择web api接入

    我们先看开发者文档

    <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>
    <MsgId>1234567890123456</MsgId>
    </xml>

    参数描述
    ToUserName 开发者微信号
    FromUserName 发送方帐号(一个OpenID)
    CreateTime 消息创建时间 (整型)
    MsgType location
    Location_X 地理位置维度
    Location_Y 地理位置经度
    Scale 地图缩放大小
    Label 地理位置信息
    MsgId 消息id,64位整型

     

    //首先判断用户是否发一个位置信息,回复给用户厕所的位置信息
    if($msgType == "location"){
    //在百度地图开发者中心,自己去注册,利用的自己的ak,json格式,经纬度是用户发送过来的
    //要用post接收
    $url = 'http://api.map.baidu.com/telematics/v3/local?location='.$postObj->Location_Y .','.$postObj->Location_X .'&keyWord=%E5%8E%95%E6%
    //因为是json格式,所以转化成数组,用file_get_contents请求url
    $arr = json_decode((file_get_contents($url)),true);
    //循环显示pointlist数组的数据 name,address,距离
    foreach($arr['pointList'] as $k => $v){
    $contentStr .= $v['name'].$v['address'] .'距离您有' .$v['distance'] . "米
    ";
    } $
    msgType = 'text';
    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    echo $resultStr;
    }

    成功返回!


    成功!
  • 相关阅读:
    可移动的按钮
    .NET及JAVA 中如何使用代码启动程序
    SQL一对多特殊查询,取唯一一条
    jquery,字符串转json对象,json对象转字符串
    jQuery的ajax()、post()方法提交数组,参数[] 问题
    Sql Server中实现Mysql中的group_concat函数效果
    SQL:REGEXP
    sql:CallableStatement执行存储过程
    js去除前后空格
    jsp中常用操作字符串的el表达式
  • 原文地址:https://www.cnblogs.com/healy/p/6735885.html
Copyright © 2011-2022 走看看