车联网API——位置、距离

车联网API——位置、距离

车联网接口

反Geocoding:http://lbsyun.baidu.com/index.php?title=car/api/anti-geocoding
测距:http://lbsyun.baidu.com/index.php?title=car/api/distance

wx_sample.php
......
    //responseMsg整理
    public function responseMsg(){
        //get post data,May be due to the different environments
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        //extract post data
        if(!empty($postStr)){//如果用户端发来的文本内容不为空

            $postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);
            $fromUsername = $postObj->FromUserName;
            $toUsername = $postObj->toUserName;
            $type = $postObj->MsgType;
            $latitude = $postObj->Location_X;
            $longitude = $postObj->Location_Y:
            $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>";
            switch ($type) {
                case 'image':
                    $contentStr = "你的图片很棒!";
                    break;
                case 'location':
                //位置
                    //反Geocoding接口
                    $geourl = "http://api.map.baidu.com/telematics/v2/reverseGeocoding?location={$longitude},{$latitude}&ak=la3cde429f38434f1811a75e1a90310c";
                    //读取文件
                    $apistr = file_get_contents($geourl);
                    //xml解析
                    $apiobj = simplexml_load_string($apistr);
                    $addstr = $apiobj->results->address;
                    //逐级解析
                    $contentStr = "我知道你在{$addstr}附近";
                //测距
                    //测距api
                    $geourl = "http://api.map.baidu.com/telematics/v2/distance?waypoints=116.681889,23.355164;{$longitude},{$latitude}&ak=1a3cde429f38434f1811a75e1a90310c";
                    $apistr = file_get_contents($geourl);
                    $apiobj = simplexml_load_string($apistr);
                    $distanceobj = $apiobj->results->distance;
                    //强制转换公里数
                    //转为int
                    $distanceint = intval($distanceobj);
                    //转为公里
                    $diskmint = distanceint/1000;
                    if($diskmint<5){
                        $contentStr = "你离公司还有{$diskmint}公里远,我们可以免费送货上门";
                    }else{
                        $contentStr = "你离公司还有{$diskmint}公里远,我们不能送货上门";
                    }
                    //多距离比较
                    //第一个店铺的距离
                    $geourl1 = "http://api.map.baidu.com/telematics/v2/distqance?waypoints=116.681837,23.353299;{$longitude},{$latitude}&ak=1a3cde429f38434f1811a75e1a90310c";
                    $apistr1 = file_get_contents($geourl1);
                    $apiobj1 = simplexml_load_string($apistr1);
                    $distanceobj1 = $apiobj1->results->distance;
                    $distanceint1 = intval($distanceobj1);
                    //第二个店铺的距离
                    $geourl2 = "http://api.map.baidu.com/telematics/v2/distqance?waypoints=116.756091,23.46596;{$longitude},{$latitude}&ak=1a3cde429f38434f1811a75e1a90310c";
                    $apistr2 = file_get_contents($geourl2);
                    $apiobj2 = simplexml_load_string($apistr2);
                    $distanceobj2 = $apiobj2->results->distance;
                    $distanceint2 = intval($distanceobj2);
                    //第三个店铺的距离
                    $geourl3 = "http://api.map.baidu.com/telematics/v2/distqance?waypoints=116.372831,23.549993;{$longitude},{$latitude}&ak=1a3cde429f38434f1811a75e1a90310c";
                    $apistr3 = file_get_contents($geourl3);
                    $apiobj3 = simplexml_load_string($apistr3);
                    $distanceobj3 = $apiobj3->results->distance;
                    $distanceint3 = intval($distanceobj3);
                    //最近的店铺距离
                    $mindistanceint = min($distanceint1,$distanceint2,$distanceint3);
                    if($mindistanceint == $distanceint1){
                        $contentStr = "离你最近的店铺有{$mindistanceint}米远,位置是1号路";
                    }elseif($mindistanceint == $distanceint2){
                        $contentStr = "离你最近的店铺有{$mindistanceint}米远,位置是2号路";
                    }else{
                        $contentStr = "离你最近的店铺有{$mindistanceint}米远,位置是3号路";
                    }

                    $contentStr = "你离公司还有『$distanceobj}米远";
                    break;
                case 'link':
                    $contentStr = "这是个link";
                    break;
                default:
                    $contentStr = "此项功能尚未开发";
            }
            $msgType = "text";
            $resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
            echo $resultStr;
        }else{//如果用户端发来的文本内容为空
            echo "";
            exit;
        }
    }

......
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值