uniapp中输入两个地址调用高德地图api算出距离
时间: 2023-12-10 14:02:44 浏览: 95
你可以通过引入高德地图 JavaScript API,在 JavaScript 中调用高德地图 Distance 类的 getDistance 函数来计算两个地址之间的直线距离。
以下是一个简单的示例代码:
``` javascript
// 引入高德地图 JavaScript API
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=YOUR_KEY"></script>
// 输入两个地址
var address1 = "北京市海淀区上地南口路2号";
var address2 = "北京市海淀区北太平庄路甲16号";
// 创建一个地图实例
var map = new AMap.Map('mapContainer');
// 根据地址获取经纬度坐标
var geocoder1 = new AMap.Geocoder({
city: "北京市", // 城市,默认:“全国”
radius: 1000 // 范围,默认:500
});
var geocoder2 = new AMap.Geocoder({
city: "北京市",
radius: 1000
});
geocoder1.getLocation(address1, function(status, result1) {
if (status === 'complete' && result1.info === 'OK') {
var lnglat1 = result1.geocodes[0].location;
geocoder2.getLocation(address2, function(status, result2) {
if (status === 'complete' && result2.info === 'OK') {
var lnglat2 = result2.geocodes[0].location;
// 计算两个经纬度之间的直线距离
var distance = map.getDistance(lnglat1, lnglat2);
console.log(distance);
} else {
console.log("获取地址2的经纬度坐标失败:" + result2.info);
}
});
} else {
console.log("获取地址1的经纬度坐标失败:" + result1.info);
}
});
```
上述代码中,YOUR_KEY 是你在高德开放平台注册后生成的 API Key,应替换为你自己的值。其中,address1 和 address2 是两个需要计算距离的地址。geocoder1 和 geocoder2 分别是负责将地址转换为经纬度坐标的 Geocoder 实例。当获取到两个地址的经纬度坐标之后,就可以通过 map.getDistance 函数来计算它们之间的直线距离。
阅读全文