uniApp 加载google地图 并规划路线

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!');
				}
			});
		});
	},
},

实例

在这里插入图片描述

### 集成和使用 Google 地图 API 的方法 #### 1. 修改 `manifest.json` 文件配置 H5 平台的地图设置 对于 H5 平台,在项目的 `manifest.json` 文件中的 H5 配置部分添加地图 SDK 配置: ```json "h5": { "title": "wallet", "router": { "mode": "hash", "base": "./" }, "publicPath": "./", "domain": "http://************", "sdkConfigs": { "maps": { "google": { "key": "your_Google_map_Apikey" // 替换为自己的谷歌 API key } } } } ``` 此操作确保了应用能够访问所需的 Google 地图服务[^2]。 #### 2. 加载初始化 Google 地图脚本 为了加载 Google 地图 JavaScript 库,可以在页面 HTML 中加入如下 `<script>` 标签来指定 API 密钥以及所需的语言环境: ```html <script async src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&language=en&callback=initMap"></script> ``` 注意替换 `YOUR_API_KEY` 和 `language` 参数以匹配实际需求。该标签应放置于页面头部或底部适当位置[^1]。 #### 3. 使用 @googlemaps/js-api-loader 初始化地图实例 推荐采用官方支持的 [@googlemaps/js-api-loader](https://www.npmjs.com/package/@googlemaps/js-api-loader) 来简化地图加载过程。安装依赖之后可以按照以下方式创建地图对象: ```javascript import { Loader } from '@googlemaps/js-api-loader'; const loader = new Loader({ apiKey: 'your_api_key', version: 'weekly' }); loader.load().then(() => { const map = new google.maps.Map(document.getElementById('map'), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); }); ``` 这段代码展示了如何通过 npm 安装包的方式引入更现代化且易于管理的方法来处理地图加载逻辑。 #### 4. 考虑不同平台的支持情况 需要注意的是,虽然上述步骤适用于 H5 版本的应用程序,但在 iOS 或 Android 原生环境中集成 Google 地图可能涉及额外的工作,比如申请特定的操作系统权限或是遵循各自平台特有的指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值