거리 계산 > php

본문 바로가기
사이트 내 전체검색

php

거리 계산

페이지 정보

작성자 서방님 댓글 0건 조회 127회 작성일 14-11-17 16:08

본문

출처 : http://www.geodatasource.com/developers/php


<?php


/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/

/*::                                                                         :*/

/*::  This routine calculates the distance between two points (given the     :*/

/*::  latitude/longitude of those points). It is being used to calculate     :*/

/*::  the distance between two locations using GeoDataSource(TM) Products    :*/

/*::                     :*/

/*::  Definitions:                                                           :*/

/*::    South latitudes are negative, east longitudes are positive           :*/

/*::                                                                         :*/

/*::  Passed to function:                                                    :*/

/*::    lat1, lon1 = Latitude and Longitude of point 1 (in decimal degrees)  :*/

/*::    lat2, lon2 = Latitude and Longitude of point 2 (in decimal degrees)  :*/

/*::    unit = the unit you desire for results                               :*/

/*::           where: 'M' is statute miles                                   :*/

/*::                  'K' is kilometers (default)                            :*/

/*::                  'N' is nautical miles                                  :*/

/*::  Worldwide cities and other features databases with latitude longitude  :*/

/*::  are available at http://www.geodatasource.com                          :*/

/*::                                                                         :*/

/*::  For enquiries, please contact sales@geodatasource.com                  :*/

/*::                                                                         :*/

/*::  Official Web site: http://www.geodatasource.com                        :*/

/*::                                                                         :*/

/*::         GeoDataSource.com (C) All Rights Reserved 2014       :*/

/*::                                                                         :*/

/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/

function distance($lat1, $lon1, $lat2, $lon2, $unit) {


  $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 {

        return $miles;

      }

}


echo distance(32.9697, -96.80322, 29.46786, -98.53506, "M") . " Miles<br>";

echo distance(32.9697, -96.80322, 29.46786, -98.53506, "K") . " Kilometers<br>";

echo distance(32.9697, -96.80322, 29.46786, -98.53506, "N") . " Nautical Miles<br>";


?>


댓글목록

등록된 댓글이 없습니다.

Total 614건 22 페이지
게시물 검색

회원로그인

접속자집계

오늘
106
어제
190
최대
1,347
전체
167,514
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.