嗨,我需要计算具有lat和long的两个点之间的距离.
我想避免任何外部API调用.
我尝试在PHP中实现Haversine公式:
这是代码:
class CoordDistance
{
public $lat_a = 0;
public $lon_a = 0;
public $lat_b = 0;
public $lon_b = 0;
public $measure_unit = 'kilometers';
public $measure_state = false;
public $measure = 0;
public $error = '';
public function DistAB()
{
$delta_lat = $this->lat_b - $this->lat_a ;
$delta_lon = $this->lon_b - $this->lon_a ;
$earth_radius = 6372.795477598;
$alpha = $delta_lat/2;
$beta = $delta_lon/2;
$a = sin(deg2rad($alpha)) * sin(deg2rad($alpha)) + cos(deg2rad($this->lat_a)) * cos(deg2rad($this->lat_b)) * sin(deg2rad($beta)) * sin(deg2rad($beta)) ;
$c = …Run Code Online (Sandbox Code Playgroud) 我有这个渲染地图的代码.
function initialize() {
var myOptions = {
center: new google.maps.LatLng(45.4555729, 9.169236),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP,
panControl: true,
mapTypeControl: false,
panControlOptions: {
position: google.maps.ControlPosition.RIGHT_CENTER
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.RIGHT_CENTER
},
scaleControl: false,
streetViewControl: false,
streetViewControlOptions: {
position: google.maps.ControlPosition.RIGHT_CENTER
}
};
var map = new google.maps.Map(document.getElementById("mapCanvas"),
myOptions);
var Item_1 = new google.maps.LatLng(45.5983128 ,8.9172776);
var myPlace = new google.maps.LatLng(45.4555729, 9.169236);
var marker = new google.maps.Marker({
position: Item_1,
map: map});
var marker = new google.maps.Marker({
position: myPlace,
map: map}); …Run Code Online (Sandbox Code Playgroud) 在存储库代码中,在另一个团队开发的模块中,我发现有一个价格从美分到欧元的转换,只需将数字除以 100。
该代码使用 Javascript,因此它使用IEEE 754标准。
我知道将货币值作为浮点数处理是不安全的,但在将任务发送给其他团队之前,我想知道这种情况是否安全。
到目前为止,我没有发现任何将整数除以 100 得到不准确结果的情况。让我们更进一步:100只是2*2*5*5.
我们知道将数字除以2是安全的,因为它正好等于位置的移动。
所以我们可以很容易地说,如果存在一个不能被 5 整除的数,那么被 100 整除是不准确的。
我做了很多测试,但没有找到任何这些数字,但我离论文的理论论证还很远。
那么,在 IEEE 754 标准中将数字除以 100 安全吗?
javascript ×2
coordinates ×1
geocoding ×1
google-maps ×1
haversine ×1
ieee ×1
ieee-754 ×1
php ×1