百度座標點計算

2021-08-11 06:59:25 字數 2090 閱讀 6963

前段時間因專案需求,用到了關於座標點計算的幾個方法,就在這裡整理下:

1. 計算兩個座標點之間的距離

2. 已知乙個座標點和最大距離,求另一座標可能在的座標區域

3. 判斷乙個座標點是否在乙個多邊形內

/**

* 計算兩個座標之間的距離

*@param $lat1 座標點1的緯度

*@param $lng1 座標點1的經度

*@param $lat2 座標點2的緯度

*@param $lng2 座標點2的經度

*@return float

*/function

getdistance

($lat1, $lng1, $lat2, $lng2)

/**

* 已知乙個座標點和最大距離,求另一座標的區域範圍

*@param $lng 經度

*@param $lat 緯度

*@param int $distance 距離

*@return array

*/function

returnsquarepoint

($lng,$lat,$distance = 1500)

基本思想:利用射線法,計算射線與多邊形各邊的交點,如果是偶數,則點在多邊形外,否則在多邊形內。還會考慮一些特殊情況,如點在多邊形頂點上,點在多邊形邊上等特殊情況,特殊情況特殊處理。

在看具體的實現方法之前,建議先了解下射線法思路,參考文件:

/**

*@param $point 指定點座標,陣列

*@param $pts 多邊形座標 順時針方向

*/function

ispointinpolygon

($point, $pts)

$n = count($pts);

$boundorvertex = true; //如果點位於多邊形的頂點或邊上,也算做點在多邊形內,直接返回true

$intersectcount = 0;//射線與多邊形相交的次數

$precision = 2e-10; //浮點型別計算時候與0比較時候的容差

$p = $point; //測試點

$p1 = $pts[0];//初始左頂點

for ($i = 1; $i

<= $n; ++$i)

//選擇與經度平行的線為射線

不在p1.lat和p2.lat之間,即不會和p1與p2兩點間的連線相交

$p2 = $pts[$i % $n];//右頂點

if ($p['lat'] < min($p1['lat'], $p2['lat']) || $p['lat'] > max($p1['lat'], $p2['lat']))

在p1.lat和p2.lat之間,且不與頂點經度相同(通常情況)

if ($p['lat'] > min($p1['lat'], $p2['lat']) && $p['lat'] < max($p1['lat'], $p2['lat']))

if ($p1['lng'] == $p2['lng']) else

} else

//射線穿過p1、p2連線

if ($p['lng'] < $xinters) }}

} else else }}

$p1 = $p2;//移動左頂點到下乙個座標點

}if ($intersectcount % 2 == 0) else

}$pts = array(

array('lat'=>39.910,'lng'=>116.395),

array('lat'=>39.914,'lng'=>116.394),

array('lat'=>39.920,'lng'=>116.403),

array('lat'=>39.914,'lng'=>116.402),

array('lat'=>39.913,'lng'=>116.410),

);$point = array('lat'=>$lat,'lng'=>$lng);

if(ispointinpolygon($point, $pts))else

百度權重和百度權重的計算

其實很多站長從事seo的工作已經很多年了,但是還是有那麼一部分站長對於權重的概念和計算方法了解的不夠透徹,包括筆者也是一樣的,筆者今天之所以寫這篇文章原因,就是希望通過我的分享能夠讓更多的站長,進一步加深他們對權重以及權重計算的認知。什麼是權重?什麼是 權重?權重指的是乙個 綜合排名的能力。站長工具...

其他座標轉化成百度座標

使用座標轉服服務前,首先需要登入api控制台申請金鑰ak,座標轉換服務屬於for server類應用 座標轉換服務每日請求次數上限為10萬次,每次最多支援100個座標點的轉換。第二步,按照請求引數說明拼寫傳送http請求的url,注意需使用第一步申請的ak 第三步,接收返回的資料 json或者xml...

php 火星座標 百度座標轉換 地球座標轉換

型別 說明使用者 wgs84 美國gps 國際通用,如谷歌國外地圖 osm地圖 火星系gcj 02 國測局制定的標準,國內地圖必須至少使用此對位置進行首次加密 bg 09 共有兩個類,coordinate和coordinatetool。coordinate,座標點物件 class coordinat...