車聯網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;
        }
    }

......
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章