8.xxx cho khoảng cách tính tọa độ map (ok)

Bài toán 1: Tôi đang ở Trang Vàng với tọa độ: 20.9836502,105.8413796 Giờ tôi tăng thêm 20 kilometer thì tọa độ tôi thay đổi như thế nào?

C:\xampp\htdocs\pointfindertheme\wp-content\plugins\pointfindercoreelements\public\js\theme-map-functions.js

var newbounds = $.pointfindercalculatebounds(lat,lng,form_radius_val,form_radius_unit_name);
console.log(form_radius_val); // 10
console.log(form_radius_unit_name); // mi
Tìm đến đây :)
$('#pfw-sw2').attr("value",newbounds[3]);

C:\xampp\htdocs\pointfindertheme\wp-content\plugins\pointfindercoreelements\public\js\theme-map-functions.js

$.pointfindercalculatebounds = function(lat, lng, distance, unit){
		function rad2deg (angle) {
		  return angle * 57.29577951308232
		}
		function deg2rad(degrees){
		    return degrees *  Math.PI / 180
		}
		if (unit == 'km') { 
			var radius = 6371.009;
		} else {
			var radius = 3958.761;
		}
		var maxlat = lat + rad2deg( distance / radius );
		var minLat = lat - rad2deg( distance / radius );
		var maxLng = lng + rad2deg( distance / radius) / Math.cos( deg2rad( lat ) );
		var minLng = lng - rad2deg( distance / radius) / Math.cos( deg2rad( lat ) );
		return [maxlat,minLat,maxLng,minLng];
	}

Bài toán 2: Tôi có tọa độ của Trang Vàng: 0.983705,105.841372 và tọa độ của Phủ Lý 20.533743, 105.926056 giờ tôi muốn tính khoảng cách này cách bao nhiêu xa?

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
	<script type="text/javascript">
		function pfcalculatedistance(lat1, lon1, lat2, lon2, unit) {
			if ((lat1 == lat2) && (lon1 == lon2)) {
				return 0;
			}else {
				var radlat1 = Math.PI * lat1/180;
				var radlat2 = Math.PI * lat2/180;
				var theta = lon1-lon2;
				var radtheta = Math.PI * theta/180;
				var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
				if (dist > 1) {
					dist = 1;
				}
				dist = Math.acos(dist);
				dist = dist * 180/Math.PI;
				dist = dist * 60 * 1.1515;
				if (unit=="K") { dist = dist * 1.609344 }
				if (unit=="N") { dist = dist * 0.8684 }
				return dist;
			}
		}
		console.log(pfcalculatedistance(20.983705,105.841372,20.533743, 105.926056,"K")); // 50.79991792194837
		console.log(pfcalculatedistance(20.983705,105.841372,20.533743, 105.926056,"N")); // 27.411571872402643
	</script>
</body>
</html>

Last updated