폴리곤 영역안의 중심 좌표를 구하는 함수입니다.
//중심 좌표 구하기
/*******************************/
function get_center($coords)
{
$count_coords = count($coords);
$xcos=0.0;
$ycos=0.0;
$zsin=0.0;
foreach ($coords as $lnglat)
{
$lat = $lnglat['lat'] * pi() / 180;
$lon = $lnglat['lng'] * pi() / 180;
$acos = cos($lat) * cos($lon);
$bcos = cos($lat) * sin($lon);
$csin = sin($lat);
$xcos += $acos;
$ycos += $bcos;
$zsin += $csin;
}
$xcos /= $count_coords;
$ycos /= $count_coords;
$zsin /= $count_coords;
$lon = atan2($ycos, $xcos);
$sqrt = sqrt($xcos * $xcos + $ycos * $ycos);
$lat = atan2($zsin, $sqrt);
return array($lat * 180 / pi(), $lon * 180 / pi());
}
$coords[]=array('lat' => '35.2442492','lng'=>'129.0903149');
$coords[]=array('lat' => '35.2440576','lng'=>'129.0905777');
$coords[]=array('lat' => '35.2438385','lng'=>'129.0902934');
$coords[]=array('lat' => '35.2440751','lng'=>'129.0900976');
$center_map = get_center($coords);
$center_lat = $center_map[0];
$center_lng = $center_map[1];
'Web > PHP' 카테고리의 다른 글
PHP] 사이트맵(sitemap.xml) 생성하는 소스 (0) | 2021.12.02 |
---|---|
PHP] 네이버맵 API를 이용한 좌표로 주소구하기 (0) | 2021.11.05 |
사업자등록정보 진위확인 및 상태조회 - PHP 오픈 API (0) | 2021.11.03 |
현 위치에서 좌표 내부에 있는지 판단하는 알고리즘 (0) | 2021.10.28 |
PHP 두 날짜 사이의 기간 구하기 (0) | 2021.04.02 |