//获取该点周围的4个点
$distance
= 1;
//范围(单位千米)
$lat
= 113.873643;
$lng
= 22.573969;
define(
'EARTH_RADIUS'
, 6371);
//地球半径,平均半径为6371km
$dlng
= 2 * asin(sin(
$distance
/ (2 * EARTH_RADIUS)) /
cos
(
deg2rad
(
$lat
)));
$dlng
= rad2deg(
$dlng
);
$dlat
=
$distance
/EARTH_RADIUS;
$dlat
= rad2deg(
$dlat
);
$squares
=
array
(
'left-top'
=>
array
(
'lat'
=>
$lat
+
$dlat
,
'lng'
=>
$lng
-
$dlng
),
'right-top'
=>
array
(
'lat'
=>
$lat
+
$dlat
,
'lng'
=>
$lng
+
$dlng
),
'left-bottom'
=>
array
(
'lat'
=>
$lat
-
$dlat
,
'lng'
=>
$lng
-
$dlng
),
'right-bottom'
=>
array
(
'lat'
=>
$lat
-
$dlat
,
'lng'
=>
$lng
+
$dlng
)
);
print_r(
$squares
[
'left-top'
][
'lat'
]);
//从数库查询匹配的记录
$info_sql
=
"select * from `A` where lat<>0 and lat>{$squares['right-bottom']['lat']} and lat<{$squares['left-top']['lat']} and lng>{$squares['left-top']['lng']} and lng<{$squares['right-bottom']['lng']} "
;
//获取两点之间的距离
function
getDistanceBetweenPointsNew(
$latitude1
,
$longitude1
,
$latitude2
,
$longitude2
) {
$theta
=
$longitude1
-
$longitude2
;
$miles
= (sin(
deg2rad
(
$latitude1
)) * sin(
deg2rad
(
$latitude2
))) + (
cos
(
deg2rad
(
$latitude1
)) *
cos
(
deg2rad
(
$latitude2
)) *
cos
(
deg2rad
(
$theta
)));
$miles
=
acos
(
$miles
);
$miles
= rad2deg(
$miles
);
$miles
=
$miles
* 60 * 1.1515;
$feet
=
$miles
* 5280;
$yards
=
$feet
/ 3;
$kilometers
=
$miles
* 1.609344;
$meters
=
$kilometers
* 1000;
return
compact(
'miles'
,
'feet'
,
'yards'
,
'kilometers'
,
'meters'
);
}
$point1
=
array
(
'lat'
=> 40.770623,
'long'
=> -73.964367);
$point2
=
array
(
'lat'
=> 40.758224,
'long'
=> -73.917404);
$distance
= getDistanceBetweenPointsNew(
$point1
[
'lat'
],
$point1
[
'long'
],
$point2
[
'lat'
],
$point2
[
'long'
]);
foreach
(
$distance
as
$unit
=>
$value
) {
echo
$unit
.
': '
.number_format(
$value
,4).
'
'
;
}
?>
http://www.jb51.net/article/83974.htm(转)
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php正则表达式用法总结》、《PHP+ajax技巧与应用小结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》