uniApp 加载google地图 并规划路线
- 备注:
- 核心代码
- 实例
备注:
打开谷歌地图失败的话 参考google开发文档
https://developers.google.com/maps/documentation/urls/ios-urlscheme?hl=zh-cn#swift
核心代码
mounted() {
this.loadGoogleMapsScript();
},
methods: {
//加载
loadGoogleMapsScript() {
const script = document.createElement('script');
script.src =
'https://maps.googleapis.com/maps/api/js?key=你自己的Key';
script.async = true;
script.defer = true;
window.initMap = this.initMap; // 将 initMap 方法绑定到全局作用域
document.head.appendChild(script);
},
//初始化
initMap() {
//获取当前的定位 经纬度
navigator.geolocation.getCurrentPosition(position => {
const {
latitude,
longitude
} = position.coords;
console.log("pos", position);
const pos = {
lat: latitude,
lng: longitude
};
//加载到地图
this.map = new google.maps.Map(document.getElementById('map'), {
center: {
lat: latitude,
lng: longitude
},
zoom: 8,
});
// this.map = new google.maps.Map(document.getElementById('map'), {
// center: {
// lat: -34.397,
// lng: 150.644
// },
// zoom: 8,
// });
// 设置起点和终点
const start = new google.maps.LatLng(latitude, longitude);
console.log(latitude, longitude);
console.log(latitude + 1, longitude + 1);
const end = new google.maps.LatLng(latitude + 1, longitude + 1);
// 创建方向服务和方向渲染器实例
const service = new google.maps.DirectionsService();
const renderer = new google.maps.DirectionsRenderer({
map: this.map
});
renderer.setMap(map);
// 计算路径并在地图上显示
service.route({
origin: start,
destination: end,
travelMode: 'DRIVING', // 可选值:'DRIVING'(驾驶)、'WALKING'(步行)、'BICYCLING'(骑行)、'TRANSIT'(公共交通)
}, (response, status) => {
if (status === 'OK') {
renderer.setDirections(response);
} else {
console.error('Directions request failed!');
}
});
});
},
},