⑴ php怎样获取当前位置的经纬度
随着 Google Maps API 的普及,开发人员常常需要获得某一特定地点的经度和纬度。这个非常有用的函数以某一地址作为参数,返回一个数组,包含经度和纬度数据。
function getLatLong($address){
if (!is_string($address))die("All Addresses must be passed as a string");
$_url = sprintf('<a href="http://maps.google.com/maps?output=js&q=%s">http://maps.google.com/maps?output=js&q=%s',rawurlencode($address));
$_result = false;
if($_result = file_get_contents($_url)) {
if(strpos($_result,'errortips') > 1 || strpos($_result,'Did you mean:') !== false) return false;
preg_match('!center:\\s*{lat:\\s*(-?\\d+\\.\\d+),lng:\\s*(-?\\d+\\.\\d+)}!U', $_result, $_match);
$_coords['lat'] = $_match[1];
$_coords['long'] = $_match[2];
}
return $_coords;
}
⑵ 如何使用php计算出两个经纬度之间的距离
* */public function getdistanceAction(){ $lng1=117.27; //经度1 $lat1=31.86; //纬度1 $lng2=120.19; //经度2 $lat2=30.26; //纬度2 $EARTH_RADIUS = 6378137; //地球半径 $RAD = pi() / 180.0; $radLat1 = $lat1 * $RAD; $radLat2 = $lat2 * $RAD;
⑶ php根据经纬度获取地理位置
这种功能,只能调用第三方的接口了,网络地图API就有这个接口addressComponents,逆地址解析,参考方法如下:
<GeocoderSearchResponse>
<status>OK</status>
<result>
<location>
<lat>38.990998</lat>
<lng>103.645966</lng>
</location>
<formatted_address>甘肃省武威市民勤县</formatted_address>
<business/>
<addressComponent>
<streetNumber/>
<street/>
<district>民勤县</district>
<city>武威市</city>
<province>甘肃省</province>
</addressComponent>
<cityCode>118</cityCode>
</result>
</GeocoderSearchResponse>
⑷ 已知一点坐标(经纬度),如何判断其方圆500米的范围
你可以先算出该点周围的矩形的四个点,然后使用经纬度去直接匹配数据库中的记录;如下图
在lat和lng上建立一个联合索引后,使用此项查询,每条记录的查询消耗平均为0.8毫秒,啧啧,效率妥妥的!
⑸ php 计算经纬度之间相差多少公里
//php 计算地图上两个坐标之间的距离
define('EARTH_RADIUS', 6378.137);//地球半径,假设地球是规则的球体
define('PI', 3.1415926);
/**
* 计算两组经纬度坐标 之间的距离
* params :lat1 纬度1; lng1 经度1; lat2 纬度2; lng2 经度2; len_type (1:m or 2:km);
* return m or km
*/
function GetDistance($lat1, $lng1, $lat2, $lng2, $len_type = 1, $decimal = 2)
{
$radLat1 = $lat1 * PI ()/ 180.0; //PI()圆周率
$radLat2 = $lat2 * PI() / 180.0;
$a = $radLat1 - $radLat2;
$b = ($lng1 * PI() / 180.0) - ($lng2 * PI() / 180.0);
$s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2)));
$s = $s * EARTH_RADIUS;
$s = round($s * 1000);
if ($len_type --> 1)
{
$s /= 1000;
}
return round($s, $decimal);
}
echo GetDistance(39.908156,116.4767, 39.908452,116.450479, 1);//输出距离/米
⑹ php的 ip 定位,经纬度至少精确到镇,附上源码和详解
ip定位一般对于电脑来说的,精确到镇有点难,淘宝的ip api服务,只能精确到区,或者市
手机的话,你需要获取位置,位置会因为手机质量的好坏,偏差很大,苹果和诺基亚手机定位很准,安卓各种机型,各种偏差,使用手机定位的是,html5有获取定位的方法,然后得到经纬度,发到网络地图 api,获取更精确的地址,
ip定位想要那么精确,有点难,你得找个好点的ip库服务,达到你要的精读就行
⑺ 怎样根据具体地址计算经纬度 php
首先将该点的经纬度(l1,b1)利用高斯正算计算出在某个坐标系下的投影坐标(x1,y1)。
(x1,y1)
=
gk(l1,b1)
gk()代表高斯克吕格投影
然后根据距离和方位角s,alpha,计算出另一点的坐标(x2,y2)
x2
=
x1+
s*cos(alpha)
y2
=
y2+
s*sin(alpha)
最后利用高斯反算即可计算出另一点的经纬度(l2,b2)