php 地图两点距离计算,计算地图上两点间的距离PHP类

计算地图上两点间的距离,使用的是谷歌地图

class GeoHelper

{

/**

* @param int $lat1

* @param int $lon1

* @param int $lat2

* @param int $lon2

* @param string $unit

* @return

*/

public static function distance($lat1, $lon1, $lat2, $lon2, $unit = "K")

{

$theta = $lon1 - $lon2;

$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad

($lat2)) * cos(deg2rad($theta));

$dist = acos($dist);

$dist = rad2deg($dist);

$miles = $dist * 60 * 1.1515;

$unit = strtoupper($unit);

if ($unit == "K") {

return ($miles * 1.609344);

} else

if ($unit == "N") {

return ($miles * 0.8684);

} else { //mi

return $miles;

}

}

/**

*

* @param string $address

* @param string $apikey

* @return array [1]:lat [0]:lng

*/

public static function getLatLng($address, $apikey)

{

$find = array("\\n", "\\r", " ");

$replace = array("", "", "+");

$address = str_replace($find, $replace, $address);

$url = 'http://maps.google.com/maps/geo?q=' . $address . '&key=' . $apikey .

'&sensor=false&output=xml&oe=utf8';

$response = self::xml2array($url);

$coordinates = $response['kml']['Response']['Placemark']['Point']['coordinates'];

if (!empty($coordinates)) {

$point_array = split(",", $coordinates);

return $point_array;

}

}

}

利用JS实现的根据经纬度计算地球上两点之间的距离

最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面,然后计算任意两点间的距离,这个距离叫做大圆距 ...

Python计算地图上两点经纬度间的距离

处理地图数据时,经常需要用到两个地理位置间的距离.比如A点经纬度(110.0123, 23.32435),B点经纬度(129.1344,25.5465),求AB两点之间的距离.我们可以用haversi ...

HDOJ2001计算两点间的距离

计算两点间的距离 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

J - 计算两点间的距离

Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description 输入两 ...

计算两点间的距离-hdu2001

Problem Description 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离.   Input 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2 ...

计算两点间的距离,hdu-2001

计算两点间的距离 Problem Description 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离.   Input 输入数据有多组,每组占一行,由4个实数组成,分别表示x1 ...

HDU 2001 计算两点间的距离

http://acm.hdu.edu.cn/showproblem.php?pid=2001 Problem Description 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离 ...

hdu2001 计算两点间的距离【C++】

计算两点间的距离 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

杭电ACM2001--计算两点间的距离

计算两点间的距离 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

随机推荐

MMORPG大型游戏设计与开发(服务器 游戏场景 事件)

今天第星期天,知识是永远是学习不完的,所以今天这部分算比较轻松,同时也希望大家会有一个好的周末.场景事件即场景的回调,和别的事件一样是在特定的条件下产生的,前面也介绍过场景的各种事件,今天详细的说一说 ...

RCP:给GEF编辑器添加网格和标尺。

网格和标尺效果如上图所示. 添加网格比较简单,也可以自己实现,主要思路是为编辑器添加一个GridLayer.但是还是建议参考eclipse自己的GEF样例来实现. 需要注意两个部分: 1.重写org. ...

viewpage广告条的制作

package com.itheima27.viewpagerdemo; import java.util.ArrayList; import java.util.List; import andro ...

更改git bash默认的路径

更改git bash默认的路径   在打开git bash时,每次都是在C:\Uer路径下,每次都需要先用cd命令转换到自己需要工作的路径(cd  /f/dss).修改打开git bash 时的默认的 ...

【原】Unity Shader VS UDK Material Editor

UDK 的材质编辑器十分好用,毕竟是所见即所得的.虽然unity也有类似第三方插件,但易用性还是差很多,下面主要是,把一些常见表达式概念对应起来. 1. UDK CameraVector (相机位向量 ...

包含常用功能的 gulpfile.js

相关包安装 建议使用cnpm npm install --save-dev ***** 其中 ***** 部分表示所需要的包模块,如 gulpfile 中的 require('gulp-useref' ...

OSGI介绍

OSGI介绍 OSGI简介 OSGI (Open Service Gateway Initiative)联盟成立于1999 年,它是一个非盈利的国际组织,旨在建立一个开放的服务规范,为通过网络向设备提 ...

Python--day11(函数的参数)

今日主要内容 1.  函数的参数 2.  函数的嵌套调用 1.  形参与实参 1.  参数介绍: 函数为什么要有参数:因为内部的函数体需要外部的数据 怎样定义函数的参数:在定义函数阶段,函数名在后面( ...

Mysql主外键

主键  primary   key 创建表时直接加上主键: create table student1(id int primary key, name varchar(20), age int, g ...

Centos 安装 mysql tar.gz

http://www.cnblogs.com/coderls/p/6848873.html

你可能感兴趣的:(php,地图两点距离计算)