Enable configuring the measurement base distance is measured in
这个提交包含在:
		
							父节点
							
								
									9891b44ae3
								
							
						
					
					
						当前提交
						8365b17f7c
					
				
					共有  3 个文件被更改,包括 38 次插入 和 11 次删除
				
			
		|  | @ -17,3 +17,19 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | ||||||
| | | | | ||||||
| */ | */ | ||||||
| $config['show_time'] = FALSE; | $config['show_time'] = FALSE; | ||||||
|  | 
 | ||||||
|  | /* | ||||||
|  | |-------------------------------------------------------------------------- | ||||||
|  | | Configure the measurement base distance is measured in | ||||||
|  | |-------------------------------------------------------------------------- | ||||||
|  | |  | ||||||
|  | | Here you can configure different measurement bases to be used on | ||||||
|  | | distance caculations. Valid values are: | ||||||
|  | | M: miles | ||||||
|  | | K: kilometers | ||||||
|  | | N: nautic miles | ||||||
|  | |  | ||||||
|  | | Default is: M | ||||||
|  | | | ||||||
|  | */ | ||||||
|  | $config['measurement_base'] = 'M'; | ||||||
|  | @ -88,7 +88,7 @@ class Logbook extends CI_Controller { | ||||||
| 		$return['callsign_qth'] = $this->logbook_model->call_qth($callsign); | 		$return['callsign_qth'] = $this->logbook_model->call_qth($callsign); | ||||||
| 		$return['callsign_iota'] = $this->logbook_model->call_iota($callsign); | 		$return['callsign_iota'] = $this->logbook_model->call_iota($callsign); | ||||||
| 		$return['qsl_manager'] = $this->logbook_model->call_qslvia($callsign); | 		$return['qsl_manager'] = $this->logbook_model->call_qslvia($callsign); | ||||||
| 		$return['bearing'] = $this->bearing($return['callsign_qra']); | 		$return['bearing'] = $this->bearing($return['callsign_qra'], $this->config->item('measurement_base')); | ||||||
| 		$return['workedBefore'] = $this->worked_grid_before($return['callsign_qra']); | 		$return['workedBefore'] = $this->worked_grid_before($return['callsign_qra']); | ||||||
| 
 | 
 | ||||||
| 		if ($return['callsign_qra'] != "") { | 		if ($return['callsign_qra'] != "") { | ||||||
|  | @ -139,7 +139,7 @@ class Logbook extends CI_Controller { | ||||||
| 		} | 		} | ||||||
| 		$return['workedBefore'] = $this->worked_grid_before($return['callsign_qra']); | 		$return['workedBefore'] = $this->worked_grid_before($return['callsign_qra']); | ||||||
| 	} | 	} | ||||||
| 	$return['bearing'] = $this->bearing($return['callsign_qra']); | 	$return['bearing'] = $this->bearing($return['callsign_qra'], $this->config->item('measurement_base')); | ||||||
| 
 | 
 | ||||||
| 	echo json_encode($return, JSON_PRETTY_PRINT); | 	echo json_encode($return, JSON_PRETTY_PRINT); | ||||||
| 
 | 
 | ||||||
|  | @ -383,7 +383,7 @@ class Logbook extends CI_Controller { | ||||||
| 					$mylocator = $this->config->item('locator'); | 					$mylocator = $this->config->item('locator'); | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
| 				$bearing = $this->qra->bearing($mylocator, $locator); | 				$bearing = $this->qra->bearing($mylocator, $locator, $this->config->item('measurement_base')); | ||||||
| 
 | 
 | ||||||
| 				echo $bearing; | 				echo $bearing; | ||||||
| 			} | 			} | ||||||
|  | @ -391,7 +391,7 @@ class Logbook extends CI_Controller { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/* return station bearing */ | 	/* return station bearing */ | ||||||
| 	function bearing($locator) { | 	function bearing($locator, $unit = 'M') { | ||||||
| 			$this->load->library('Qra'); | 			$this->load->library('Qra'); | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -404,7 +404,7 @@ class Logbook extends CI_Controller { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 				$bearing = $this->qra->bearing($mylocator, $locator); | 				$bearing = $this->qra->bearing($mylocator, $locator, $unit); | ||||||
| 
 | 
 | ||||||
| 				return $bearing; | 				return $bearing; | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
|  | @ -10,11 +10,11 @@ class Qra { | ||||||
| 		return qra2latlong($strQRA); | 		return qra2latlong($strQRA); | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
| 	function bearing($tx, $rx) { | 	function bearing($tx, $rx, $unit = 'M') { | ||||||
| 		$my = qra2latlong($tx); | 		$my = qra2latlong($tx); | ||||||
| 		$stn = qra2latlong($rx); | 		$stn = qra2latlong($rx); | ||||||
| 
 | 
 | ||||||
| 		$bearing = bearing($my[0], $my[1], $stn[0], $stn[1]); | 		$bearing = bearing($my[0], $my[1], $stn[0], $stn[1], $unit); | ||||||
| 		 | 		 | ||||||
| 		return $bearing; | 		return $bearing; | ||||||
| 	} | 	} | ||||||
|  | @ -37,7 +37,7 @@ cos(deg2rad($theta)); | ||||||
|   return round($dist, 1); |   return round($dist, 1); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function bearing($lat1, $lon1, $lat2, $lon2) { | function bearing($lat1, $lon1, $lat2, $lon2, $unit = 'M') { | ||||||
|   if (round($lon1, 1) == round($lon2, 1)) { |   if (round($lon1, 1) == round($lon2, 1)) { | ||||||
| 	if ($lat1 < $lat2) { | 	if ($lat1 < $lat2) { | ||||||
| 	  $bearing = 0; | 	  $bearing = 0; | ||||||
|  | @ -45,7 +45,7 @@ function bearing($lat1, $lon1, $lat2, $lon2) { | ||||||
| 	  $bearing = 180; | 	  $bearing = 180; | ||||||
| 	} | 	} | ||||||
|   } else { |   } else { | ||||||
| 	$dist = distance($lat1, $lon1, $lat2, $lon2, 'N'); | 	$dist = distance($lat1, $lon1, $lat2, $lon2, $unit); | ||||||
| 	$arad = acos((sin(deg2rad($lat2)) - sin(deg2rad($lat1)) * cos(deg2rad($dist / 60))) / (sin(deg2rad($dist | 	$arad = acos((sin(deg2rad($lat2)) - sin(deg2rad($lat1)) * cos(deg2rad($dist / 60))) / (sin(deg2rad($dist | ||||||
| / 60)) * cos(deg2rad($lat1)))); | / 60)) * cos(deg2rad($lat1)))); | ||||||
| 	$bearing = $arad * 180 / pi(); | 	$bearing = $arad * 180 / pi(); | ||||||
|  | @ -68,7 +68,18 @@ function bearing($lat1, $lon1, $lat2, $lon2) { | ||||||
| $var_dist = ""; | $var_dist = ""; | ||||||
|   #return $dir;
 |   #return $dir;
 | ||||||
|   if (isset($dist)) { |   if (isset($dist)) { | ||||||
| 	$var_dist = $dist." miles"; | 	$var_dist = $dist; | ||||||
|  | 	switch ($unit) { | ||||||
|  | 		case 'M': | ||||||
|  | 			$var_dist .= " miles"; | ||||||
|  | 			break; | ||||||
|  | 		case 'N': | ||||||
|  | 			$var_dist .= " nautic miles"; | ||||||
|  | 			break; | ||||||
|  | 		case 'K': | ||||||
|  | 			$var_dist .= " kilometers"; | ||||||
|  | 			break; | ||||||
|  | 	} | ||||||
|   } |   } | ||||||
|   return round($bearing, 0)."º ".$dir." ".$var_dist; |   return round($bearing, 0)."º ".$dir." ".$var_dist; | ||||||
| } | } | ||||||
|  |  | ||||||
		正在加载…
	
		在新工单中引用