当前位置: 首页 > news >正文

【uniapp】Google Maps

话不多说 直接上干货 提前申请谷歌地图账号
一、新建地图 使用h5+获取当前定位或者使用三方uniapp插件

 	var coords = ""navigator.geolocation.getCurrentPosition(function(position) {coords = {lat: position.coords.latitude,lng: position.coords.longitude};lats = position.coords.latitude;lngs = position.coords.longitude});
map = new google.maps.Map(document.getElementById('map'), {zoom: zoom,center: coords,mapId: "your map id",animation: 'BOUNCE'});

二、画圆

cityCircle = new google.maps.Circle({strokeColor: "#FF0000", // 边框颜色strokeOpacity: 0.6, // 边框透明度strokeWeight: 0.8, // 边框宽度fillColor: "#FF0000", // 填充颜色fillOpacity: 0.15, // 填充透明度map,center: {lat: lats,lng: lngs},radius: maxValue * 500, //半径
});

三、绘制marker点

  let min = 500;let max = 1000;let randomNum = Math.floor(Math.random() * (max - min + 1)) + min;for (let i = 0; i < 5; i++) {var locObj = {lat: (lats + (Math.floor(Math.random() * 21) - 15) / randomNum) * 1,lng: (lngs - (Math.floor(Math.random() * 21) - 15) / randomNum) * 1,title: randomChinese(10)}const marker = new google.maps.Marker({position: locObj,title: locObj.title + '-' + i,imgUrl: 'https://picsum.photos/450/450?random=' + Math.floor(Math.random() * 100),icon: {url: "https://maps.gstatic.com/mapfiles/ms2/micons/blue.png",scaledSize: new google.maps.Size(50, 50),},map: map});markers.push(marker)}

四、搜索框

// 创建 Autocomplete 实例const input = document.getElementById("search-box");const autocomplete = new google.maps.places.Autocomplete(input);// 设置 Autocomplete 参数autocomplete.setFields(["geometry", "name"]);// 添加事件监听器,当用户选择某个地点时,在地图上标记出所选位置autocomplete.addListener("place_changed", function() {const place = autocomplete.getPlace();if (!place.geometry) {console.log("返回的地理信息无效!");return;}// 将地图中心点指向用户所选位置,并设置标记if (searchmarker) { //去除marker标记点searchmarker.setMap(null)searchmarker = ""}map.setCenter(place.geometry.location);searchmarker = new google.maps.Marker({map: map,position: place.geometry.location,title: place.name,});});

五、绘制省市区

const polygonsData = []//cityObjArr 请前往dcloud获取相关数据【https://ext.dcloud.net.cn/plugin?id=11873】for (var k = 0; k < cityObjArr.length; k++) {var obj = {polygonCoords: cityObjArr[k],color: getRandomColor(),strokeWeight: 2,}polygonsData.push(obj)}polygonsData.forEach((polygon) => {var polygonObj = new google.maps.Polygon({paths: polygon.polygonCoords,strokeColor: getRandomColor(), // 边界线颜色strokeOpacity: 0.8, // 边界线透明度strokeWeight: 2, // 边界线厚度fillColor: getRandomColor(), // 填充颜色fillOpacity: 0.2, // 填充透明度map: map,});newPolygon.push(polygonObj)});

六、画路线

const directionsService = new google.maps.DirectionsService();var TravelMode = [{id: 1,name: "DRIVING",color: "#ea4335"},{id: 2,name: "WALKING",color: "#7825fa"},{id: 3,name: "BICYCLING",color: "#fa6200"},{id: 4,name: "TRANSIT",color: "#ff00ff"}]for (var i = 0; i < TravelMode.length; i++) {startDrawRoute(directionsService, TravelMode[i])}function startDrawRoute(directionsService, travelMode) {// 随机数字而已  动态数字  方便查询效果let min = 5000;let max = 10000;let randomNum = (Math.floor(Math.random() * (max - min + 1)) + min) / 500000;// 起点坐标const origin = {lat: 34.7382820208 + randomNum,lng: 113.64360881345 + randomNum};// 终点坐标const destination = {lat: 34.78194 + randomNum,lng: 113.622512 + randomNum};var directionsRenderer = new google.maps.DirectionsRenderer({map: map,suppressMarkers: true, // 关闭默认图标polylineOptions: {strokeColor: travelMode.color, //设置路线颜色strokeWeight: 5 //设置路线宽度},// draggable: true //允许用户拖动路线});const request = {origin: origin,destination: destination,travelMode: travelMode.name, //绘制路线的模式};directionsService.route(request,(result, status) => {if (status === "OK") {directionsRenderer.setDirections(result);directionsRenderer.setMap(map);// 获取起点和终点的信息并添加标记var startMarker = new google.maps.Marker({position: result.routes[0].legs[0].start_location,map: map,icon: {url: "https://maps.gstatic.com/mapfiles/ms2/micons/pink.png",scaledSize: new google.maps.Size(50, 50),},});drawRouteMarker.push(startMarker)var endMarker = new google.maps.Marker({position: result.routes[0].legs[0].end_location,map: map,icon: {url: "https://maps.gstatic.com/mapfiles/ms2/micons/orange.png",scaledSize: new google.maps.Size(50, 50),},});drawRouteMarker.push(endMarker)directionsRendererArr.push(directionsRenderer)//显示路线的总距离console.log('距离===', directionsRenderer.directions.routes[0].legs[0].distance.text)console.log('时间===', directionsRenderer.directions.routes[0].legs[0].duration.text)// for (var k = 0; k < directionsRenderer.directions.routes[0].legs[0].steps.length; k++) {// 	console.log(directionsRenderer.directions.routes[0].legs[0].steps[k].instructions)// }} else {// console.log(travelMode, "绘制失败===", result)}});
}

这个时候相信你已经看到了地图【详细代码请前往dcloud插件市场查看marker标记点、省市区颜色标记、输入框搜索、范围选择、信息弹窗等】

祝:学习愉快、工作顺利

温馨提示:源码获取方式 关注【码农园区】 回复   “ google”   

在这里插入图片描述

相关文章:

【uniapp】Google Maps

话不多说 直接上干货 提前申请谷歌地图账号一、新建地图 使用h5获取当前定位或者使用三方uniapp插件 var coords ""navigator.geolocation.getCurrentPosition(function(position) {coords {lat: position.coords.latitude,lng: position.coords.longitude};lats …...

C语言变量与常量

跟着肯哥&#xff08;不是我&#xff09;学C语言的变量和常量、跨文件访问、栈空间 栈空间还不清楚&#xff0c;期待明天的课程内容 C变量 变量&#xff08;Variable&#xff09;是用于存储和表示数据值的名称。 主要包括四个环节&#xff1a;定义、初始化、声明、使用 在我刚…...

AI创作系统ChatGPT网站源码/支持DALL-E3文生图/支持最新GPT-4-Turbo模型+Prompt应用

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...

二维码智慧门牌管理系统升级,异常门牌聚合解决方案助力高效管理

文章目录 前言一、异常门牌聚合解决方案 前言 在今天的数字化时代&#xff0c;智慧城市已成为发展趋势&#xff0c;其中二维码智慧门牌管理系统扮演着至关重要的角色。通过对门牌信息进行数字化管理&#xff0c;该系统极大提升了城市管理的效率和便捷性。然而&#xff0c;随着…...

【XTDrone Ubuntu20.04】XTDrone+ Ubuntu20.04 + PX4安装

XTDrone仿真平台配置 文章目录 XTDrone仿真平台配置依赖安装 ROS一键安装Marvos安装PX4 安装安装QTGroundControlXTDrone下载安装 环境&#xff1a; VMWare 16.0 Ubuntu 22.04 &#xff08;因为没人配过&#xff09;Ubuntu 20.04 参考文章&#xff1a; 仿真平台基础配置 (yuq…...

河北大学选择ZStack Cube超融合一体机打造实训云平台

河北大学通过云轴科技ZStack Cube超融合一体机构建校园实训云平台&#xff0c;部署测试仅耗时1天&#xff0c;该平台能够更快地为学生提供高性能、高可用的云主机、云存储和云网络服务&#xff1b;同时也能满足日常运维管理要求&#xff0c;为学生提供更好的实训环境。 河北省…...

IDEA远程一键部署SpringBoot到Docker

IDEA是Java开发利器&#xff0c;Spring Boot是Java生态中最流行的微服务框架&#xff0c;docker是时下最火的容器技术&#xff0c;那么它们结合在一起会产生什么化学反应呢&#xff1f; 一、开发前准备 1. Docker安装 可以参考&#xff1a;https://docs.docker.com/install/ 2…...

索引三星结构

三星索引的定义&#xff0c;可以先给我们对索引优化提供一个大概的思路&#xff1a; 满足第1颗星&#xff1a; 取出所有的等值谓词的列&#xff0c;作为索引最开头的列——以任意顺序都可以。 满足第2颗星&#xff1a; 将order by加入到索引列&#xff0c;不要改变这些列的顺…...

rust 笔记 高级错误处理

文章目录 错误处理组合器or() 和 and()or_else() 和 and_then()filtermap() 和 map_err()map_or() 和 map_or_else()ok_or() and ok_or_else() 自定义错误类型错误转换 From 特征 归一化不同的错误类型Box<dyn Error>自定义错误类型 简化错误处理thiserroranyhow 错误处理…...

python+Django 使用apscheduler实现定时任务 管理调度

apscheduler实现定时任务 管理调度 在Django 项目中经常会用到定时任务去处理一些业务处理 使用 APScheduler 可以轻松地实现定时任务的管理和调度。你可以通过以下步骤来创建、启动、停止和删除定时任务&#xff1a; 1.创建调度器对象&#xff1a; from apscheduler.schedu…...

Java编程中,异步操作流程中,最终一致性以及重试补偿的设计与实现

一、背景 微服务设计中&#xff0c;跨服务的调用&#xff0c;由于网络或程序故障等各种原因&#xff0c;经常会出现调用失败而需要重试。另外&#xff0c;在异步操作中&#xff0c;我们提供接口让外部服务回调。回调过程中&#xff0c;也可能出现故障。 这就要求我们主动向外…...

吴恩达《机器学习》8-7:多元分类

在机器学习领域&#xff0c;经常会遇到不止两个类别的分类问题。这时&#xff0c;需要使用多类分类技术。本文将深入探讨多类分类&#xff0c;并结合学习内容中的示例&#xff0c;了解神经网络在解决这类问题时的应用。 一、理解多类分类 多类分类问题是指当目标有多个类别时…...

Postman批量运行用例

近期在复习Postman的基础知识&#xff0c;在小破站上跟着百里老师系统复习了一遍&#xff0c;也做了一些笔记&#xff0c;希望可以给大家一点点启发。 一&#xff09;注意点 有上传文件的接口&#xff0c;需要做如下设置&#xff1a; 1、打开能读取外部文件的开关 2、把需要…...

20个Golang最佳实践

在本教程中&#xff0c;我们将探讨 Golang 中的 20 个最佳编码实践。它将帮助您编写有效的 Go 代码。 #20&#xff1a;使用正确的缩进 良好的缩进使您的代码具有可读性。一致地使用制表符或空格&#xff08;最好是制表符&#xff09;并遵循 Go 标准缩进约定。 package main …...

Java 类之 java.lang.System

Java 类之 java.lang.System 文章目录 Java 类之 java.lang.System一、简介二、主要功能1、currentTimeMillis() - 获取当前时间的毫秒数说明代码示例 2、getProperty(String key) - 获取系统属性说明代码示例 3、exit(int status) - 终止虚拟机说明代码示例 4、arraycopy(Obje…...

认识Modbus通信协议(笔记)

Modbus 莫迪康 1979年 PLC 1969年 什么是modbus&#xff1f; 它是一个Bus&#xff0c;即总线协议。比如串口协议、IIC协议、SPI都是通信协议。 协议&#xff0c;顾名思义是一种规定和约束 Modbus协议是一种引用层的报文传输协议&#xff0c;RTU、ASCLL、TCP,都属于Modbus协…...

【算法】距离(最近公共祖先节点)

题目 给出 n 个点的一棵树&#xff0c;多次询问两点之间的最短距离。 注意&#xff1a; 边是无向的。所有节点的编号是 1,2,…,n。 输入格式 第一行为两个整数 n 和 m。n 表示点数&#xff0c;m 表示询问次数&#xff1b; 下来 n−1 行&#xff0c;每行三个整数 x,y,k&am…...

基于SpringBoot的SSMP整合案例(消息一致性处理与表现层开发)

消息一致性处理 在后端执行完相应的操作后&#xff0c;我们需要将执行操作后的结果与数据返回前端&#xff0c;前端 调用我们传回去的数据&#xff0c;前端是如何知道我们传回去的数据名称的&#xff1f; 答&#xff1a;前后端遵循了同一个"协议"。这个协议就是定义…...

c#之反射详解

总目录 文章目录 总目录一、反射是什么&#xff1f;1、C#编译运行过程2、反射与元数据3、反射的优缺点 二、反射的使用1、反射相关的类和命名空间1、System.Type类的应用2、System.Activator类的应用3、System.Reflection.Assembly类的应用4、System.Reflection.Module类的应用…...

synchronized jvm实现思考

底层实现时&#xff0c;为什么使用了cxq队列和entryList双向链表&#xff1f;这里为什么不跟AQS中使用一个队列就行了&#xff0c;加了一个entryList的目的是为了什么&#xff1f; 个人理解这里多一个entryList&#xff0c;可能是用于减少频繁的cas操作。假设存在很多锁竞争时&…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...