国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

??
2. ?? ?? ?? ??
三、程序?qū)崿F(xiàn)
? ?? ??? ?? ?? ?? ??? ?? ??? ?? ??? ?? WeChat ?? ??? ??? ????? ?? ??

?? ??? ?? ??? ?? ??? ?? WeChat ?? ??? ??? ????? ?? ??

Mar 31, 2017 pm 02:50 PM
?? ?? ???

1. ??? ?? ?? ??? ??

???? ??? ?? ? ???? ??? ??? ????

?? ??? ?? ??? ?? ??? ?? WeChat ?? ??? ??? ????? ?? ??

??? ??:

<xml>
<ToUserName><![CDATA[gh_680bdefc8c5d]]></ToUserName>
<FromUserName><![CDATA[oIDrpjqASyTPnxRmpS9O_ruZGsfk]]></FLACFromUserName>
<CreateTime>1359036619</CreateTime>
<MsgType><![CDATA[location]]></MsgType>
<Location_X>22.539968</Location_X>
<Location_Y>113.954980</Location_Y>
<Scale>16</Scale>
<Label><![CDATA[中國(guó)廣東省深圳市南山區(qū)華僑城深南大道9789號(hào) 郵政編碼: 518057]]></Label>
<MsgId>5837017832671832047</MsgId>
</xml>

XML ?? ??


ToUserName 消息接收方微信號(hào),一般為公眾平臺(tái)賬號(hào)微信號(hào)
 FromUserName 消息發(fā)送方微信號(hào)
 CreateTime 消息創(chuàng)建時(shí)間
 MsgType 消息類型,地理位置為location
 Location_X 地理位置緯度
 Location_Y 地理位置經(jīng)度
 Scale 地圖縮放大小
 Label 地理位置信息
 MsgId 消息ID號(hào)

2. ?? ?? ?? ??

Baidu Map Place API? ??? HTTP ????????. ?? ??? ?? ??? POI ???? ?? ? ???? ?? POI? ?? ?? ?? ???? ???? ?? ???? C#, C++, Java ? ?? ?? ??? ???? HTTP ??? ??? json, xml? ?? ? ????. ???.

Place API? ?? ?? POI ???, POI ?? ???, ?? ?? ?? ?? ???, ??? ?? ?? ?? ?? ???? ?????. ?? ?? POI ???? ?? ? ??, ???? ??, ?? ?? ??? ? ?? ?? ?? ??? ?????.

?? ?? ??? ???? ?? ?? ??? ???? ????.

?? ?? ?? POI ??? ?????? ??? ????.

http://api.map.baidu.com/place/v2/search

???.

????

????

???

???

??

??

?

??

38.76623, 116.43213
lat,lng

?? ?? ???, ?? ?? ?? ? ?

radius (r)

???

??

2000

?? ?? ??(??)

q(query)

?

??

???, ATM, ?????

?? ???, ?? ?? ? ??? ?? ?? ??? ?? ??? ?????. ?? ???? ??? $ ??? ????, ?? 10?? ??? ??? ?????. ?: "??$??".

??

??

??

??? ???/????, ???? ??

?? ??, q? ???? ??

??

???

xml

json ?? xml

?? ??? json ?? xml???.

scope

?

1

1, 2

?? ?? ?? ?????. ?? 1??? ?? ??? ?? ??? ????, ?? 2?? POI ?? ??? ?????.

filter

???

??

filter=industry_type:cater
|sort_name:??
|sort_rule:0
|?? ??:100,200
|???:0
|discount:0

?? ??? ?????. ?? ?? 2? ?? ??? ??? ??? ? ????.
industry_type: ?? ??
sort_name: ?? ??
sort_rule: ?? ??, ?? ??? ????: 0: ?? ??? ?? ?, 1: ?? ??? ?? ?
?? ??: ???
groupon: ???? ??, 1? ???? ??, 0? ???? ??
??: ?? ?? ??, 1? ?? ??, 0? ?? ??

page_size

10

10

范圍記錄數(shù)量,默認(rèn)為10條記錄,最大返回20條。多關(guān)鍵字檢索時(shí),返回的記錄數(shù)為關(guān)鍵字個(gè)數(shù)*page_size。

page_num

0

0、1、2

分頁頁碼,默認(rèn)為0,0代表第一頁,1代表第二頁,以此類推。

ak

E4805d16520de693a3fe707cdc962045

用戶的訪問密鑰,必填項(xiàng)。v2之前該屬性為key。

sn

 

用戶的權(quán)限簽名。

timestamp

 

設(shè)置sn后該值必填。

調(diào)用舉例如下:


http://api.map.baidu.com/place/v2/search?ak=MgBALVVeCd8THVBi6gPdvsvG&output=json&query=%E9%93%B6%E8%A1%8C&page_size=5&page_num=0&scope=2&location=39.915,116.404&radius=2000&filter=sort_name:distance

三、程序?qū)崿F(xiàn)

百度地圖類定義如下

class baiduMapClient
{    
    private $api_server_url;
    private $auth_params;

    public function __construct()
    {
        $this->api_server_url = "http://api.map.baidu.com/";
        $this->auth_params = array();
           $this->auth_params[&#39;key&#39;] = "401f9a693dd267dd9a4661ec0895fb20";
        $this->auth_params[&#39;output&#39;] = "json";
    }

    public function Geocoding_coordinate_address($location) 
    {   
        return $this->call("geocoder", array("location" => $location));
    }
    
    //http://api.map.baidu.com/place/search?&query=眼鏡&location=39.915,116.404&radius=3000&output=json&key=37492c0ee6f924cb5e934fa08c6b1676
    public function Place_search($query, $location, $radius) 
    {
        return $this->call("place/search", array("query" => $query, "location" => $location, "radius" => $radius));
    }
    
    protected function call($method, $params = array())
    {
        $headers = array(
            "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1",
            "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            "Accept-Language: en-us,en;q=0.5",
            //"Accept-Encoding: gzip, deflate",
            "Referer: http://developer.baidu.com/"
        );
        $params = array_merge($this->auth_params, $params);
        $url = $this->api_server_url . "$method?".http_build_query($params);
        if (DEBUG_MODE){echo "REQUEST: $url" . "\n";}
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        //curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
         $data = curl_exec($ch);
        curl_close($ch);    
        $result = null;
        if (!empty($data)){
            if (DEBUG_MODE){
                echo "RETURN: " . $data . "\n";
            }
            $result = json_decode($data);
        }
        else{
            echo "cURL Error:". curl_error($ch);
        }
        return $result;
    }
}

獲取附近的調(diào)用代碼如下:

function catchEntitiesFromLocation($entity, $x, $y, $radius)
{   
    $mapObj = new baiduMapClient();
    $search = $mapObj->Place_search($entity, $x.",".$y, $radius);
    $results = $search->results;
    for ($i = 0; $i < count($results); $i++) {
        $distance = getDistance($x, $y, $results[$i]->location->lat, $results[$i]->location->lng);
        $shopSortArrays[$distance] = array(
            "Title"=>"【".$results[$i]->name."】<".$distance."M>".$results[$i]->address.(isset($results[$i]->telephone)?" ".$results[$i]->telephone:""),
            "Description"=>"", 
            "PicUrl"=>"", 
            "Url"=>"");
    }
    ksort($shopSortArrays);//排序
    $shopArray = array(); 
    foreach ($shopSortArrays as $key => $value) {  
        $shopArray[] =  array(
                        "title" => $value["Title"],
                        "description" => $value["Description"],
                        "pic" => $value["PicUrl"],
                        "url" => $value["Url"],
                    );
        if (count($shopArray) > 6){break;}
    }
    return $shopArray;
}

計(jì)算兩坐標(biāo)之間距離如下

function getDistance($lat_a, $lng_a, $lat_b, $lng_b) {
    //R是地球半徑(米)
    $R = 6366000;
    $pk = doubleval(180 / 3.14169);
    
    $a1 = doubleval($lat_a / $pk);
    $a2 = doubleval($lng_a / $pk);
    $b1 = doubleval($lat_b / $pk);
    $b2 = doubleval($lng_b / $pk);

    $t1 = doubleval(cos($a1) * cos($a2) * cos($b1) * cos($b2));
    $t2 = doubleval(cos($a1) * sin($a2) * cos($b1) * sin($b2));
    $t3 = doubleval(sin($a1) * sin($b1));
    $tt = doubleval(acos($t1 + $t2 + $t3));

    return round($R * $tt);
}

對(duì)于用戶的坐標(biāo)記錄,我們使用數(shù)據(jù)庫(kù)的方式來存儲(chǔ),

如果用戶發(fā)送查詢命令,則直接查詢,

function searchUserLocation($userWxid)
{
    Global $mysql_host;
    Global $mysql_host_s;
    Global $mysql_port;
    Global $mysql_user;
    Global $mysql_password;
    Global $mysql_database;
    
    //查詢使用從庫(kù),支持SAE
    $mysql_table = "location";
    $mysql_state = "SELECT * FROM ".$mysql_table." WHERE userWxid = \"".$userWxid."\"";
    $con = mysql_connect($mysql_host.&#39;:&#39;.$mysql_port, $mysql_user, $mysql_password);
    if (!$con){
        die(&#39;Could not connect: &#39; . mysql_error());
    }
    mysql_query("SET NAMES &#39;UTF8&#39;");
    mysql_select_db($mysql_database, $con);
    $result = mysql_query($mysql_state);
    $location = array(); 
    while($row = mysql_fetch_array($result))
    {
        $location["x"] = $row["locationX"]; 
        $location["y"] = $row["locationY"]; 
    }
    mysql_close($con);
    if (isset($location["x"]) && $location["x"] != 0.0){
        return $location;
    }else{
        return "系統(tǒng)中沒有你的地理位置信息,請(qǐng)先發(fā)送位置給我!您不用擔(dān)心你的行蹤被泄漏,因?yàn)槟憧梢曰瑒?dòng)地圖,把別處的地址發(fā)送過來。";
    }
    
}

如果用戶發(fā)了位置,則進(jìn)行更新

function updateOrInsert($weixinid, $locationX, $locationY)
{    
    if (isset($_SERVER[&#39;HTTP_APPNAME&#39;])){
        $mysql_host = SAE_MYSQL_HOST_M;
        $mysql_host_s = SAE_MYSQL_HOST_S;  //sae的從庫(kù)
        $mysql_port = SAE_MYSQL_PORT;
        $mysql_user = SAE_MYSQL_USER;
        $mysql_password = SAE_MYSQL_PASS;
        $mysql_database = SAE_MYSQL_DB;
    }else{
        $mysql_host = "127.0.0.1";
        $mysql_host_s = "127.0.0.1";
        $mysql_port = "3306";
        $mysql_user = "root";
        $mysql_password = "root";
        $mysql_database = "sae";
    }
    
    $mysql_table = "location";
    //INSERT INTO location VALUES("23s2s", 1122.2, 366.2) ON DUPLICATE KEY UPDATE locationX = 1122.2, locationY = 366.2;
    
    $mysql_state = "INSERT INTO ".$mysql_table." VALUES(\"".$weixinid."\", ".$locationX.", ".$locationY.") ON DUPLICATE KEY UPDATE locationX = ".$locationX.", locationY = ".$locationY.";";
    var_dump($mysql_state);
    //
    
    $con = mysql_connect($mysql_host.&#39;:&#39;.$mysql_port, $mysql_user, $mysql_password);
    if (!$con){
        die(&#39;Could not connect: &#39; . mysql_error());
    }
    mysql_query("SET NAMES &#39;UTF8&#39;");
    mysql_select_db($mysql_database, $con);
    $result = mysql_query($mysql_state);
    if ($result == true){
        //return "你提交的位置為緯度:".$locationX.",經(jīng)度:".$locationY."。\n現(xiàn)在可以發(fā)送“附近”加關(guān)鍵字的命令查詢附近的目標(biāo),如“附近酒店”,“附近醫(yī)院”。";
        return "已經(jīng)成功獲取你的位置。您不用擔(dān)心你的行蹤被泄漏,因?yàn)槟憧梢园亚Ю镏獾牡刂诽峤贿^來。\n現(xiàn)在可以發(fā)送“附近”加關(guān)鍵字的命令查詢附近的目標(biāo),如“附近酒店”,“附近醫(yī)院”。";
    }else{
        return "提交失敗,請(qǐng)重試。如果一直出現(xiàn)這樣的錯(cuò)誤,請(qǐng)給我們留言。";
    }
}

對(duì)于用戶發(fā)送的內(nèi)容,先提取坐標(biāo),然后進(jìn)行組合查詢

?? ??? ?? ??? ?? ??? ?? WeChat ?? ??? ??? ????? ?? ??

實(shí)現(xiàn)效果如下:

??? ??? ?? ??? ?? ??? ?? WeChat ?? ??? ??? ????? ?? ???? ??? ?? ??? ?? ??? ?? WeChat ?? ??? ??? ????? ?? ???? ??? ?? ??? ?? ??? ?? WeChat ?? ??? ??? ????? ?? ??

?

? ??? ?? ??? ?? ??? ?? ??? ?? WeChat ?? ??? ??? ????? ?? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undresser.AI Undress

Undresser.AI Undress

???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover

AI Clothes Remover

???? ?? ???? ??? AI ?????.

Video Face Swap

Video Face Swap

??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

???

??? ??

???++7.3.1

???++7.3.1

???? ?? ?? ?? ???

SublimeText3 ??? ??

SublimeText3 ??? ??

??? ??, ???? ?? ????.

???? 13.0.1 ???

???? 13.0.1 ???

??? PHP ?? ?? ??

???? CS6

???? CS6

??? ? ?? ??

SublimeText3 Mac ??

SublimeText3 Mac ??

? ??? ?? ?? ?????(SublimeText3)

???

??? ??

?? ????
1785
16
Cakephp ????
1729
56
??? ????
1581
29
PHP ????
1445
31
???