要在 UniApp 中显示当前位置与所传入位置的距离,你可以借助小程序的 API 来获取当前位置的经纬度,并使用合适的算法计算两点之间的距离。
首先,你可以使用 `uni.getLocation` 方法获取当前位置的经纬度信息。示例代码如下:
uni.getLocation({ success: function (res) { const latitude = res.latitude; // 当前位置纬度 const longitude = res.longitude; // 当前位置经度 // 在这里执行计算距离的操作 } });
接下来,你可以使用 Haversine 公式或其他距离计算公式来计算两个经纬度之间的距离。以下是一个使用 Haversine 公式计算距离的示例代码:
function getDistance(lat1, lon1, lat2, lon2) { const R = 6371; // 地球半径,单位为千米 const dLat = (lat2 - lat1) * Math.PI / 180; const dLon = (lon2 - lon1) * Math.PI / 180; const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) * Math.sin(dLon / 2) * Math.sin(dLon / 2); const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); const distance = R * c; return distance.toFixed(2); // 保留两位小数 } // 在获取到当前位置经纬度后,调用 getDistance 方法计算距离 const distance = getDistance(latitude, longitude, targetLatitude, targetLongitude); console.log('距离:', distance, '千米');
请注意,`targetLatitude` 和 `targetLongitude` 是要比较的目标位置的经纬度。你可以将其替换为你需要比较的位置的具体经纬度值。
以上是一种简单的实现方式,你可以根据自己的需求和场景进行适当调整。希望对你有帮助!如有其他问题,请随时提问。