移动app利用经纬度计算距离
mui.plusReady(function() {plus.geolocation.getCurrentPosition(function(p) {plus.storage.setItem('lat',p.coords.latitude);lat = p.coords.latitude;plus.storage.setItem('lng',p.coords.longitu...
·
mui.plusReady(function() {
plus.geolocation.getCurrentPosition(function(p) {
plus.storage.setItem('lat',p.coords.latitude);
lat = p.coords.latitude;
plus.storage.setItem('lng',p.coords.longitude);
lng = p.coords.longitude;
var center = [];
center = gcj02tobd09(lat, lng);
lat = center[0];
lng = center[1];
getDistance(lat, lng, latitude, longitude);
}, function(e) {
console.log('Geolocation error: ' + e.message);
}, {
provider: 'baidu'
});
})
function getDistance($lat1, $lng1, $lat2, $lng2) {
$earthRadius = 6367000;
$lat1 = ($lat1 * Math.PI) / 180;
$lng1 = ($lng1 * Math.PI) / 180;
$lat2 = ($lat2 * Math.PI) / 180;
$lng2 = ($lng2 * Math.PI) / 180;
$calcLongitude = $lng2 - $lng1;
$calcLatitude = $lat2 - $lat1;
$stepOne = Math.pow(Math.sin($calcLatitude / 2), 2) + Math.cos($lat1) * Math.cos($lat2) * Math.pow(Math.sin($calcLongitude / 2), 2);
$stepTwo = 2 * Math.asin(Math.min(1, Math.sqrt($stepOne)));
$calculatedDistance = $earthRadius * $stepTwo;
return Math.round($calculatedDistance);
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)