车联网API——位置、距离

来源:互联网 发布:java 代码 编辑:程序博客网 时间:2024/05/04 11:48

车联网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