高德地图实现-微信小程序地图导航

4 篇文章 1 订阅
订阅专栏
2 篇文章 0 订阅
订阅专栏

效果图:

微信图片_20230806201545.png微信图片_20230806201628.png

一、准备阶段

  • 1、在高德开放平台注册成为开发者
  • 2、申请开发者密钥(key)。
  • 3、下载并解压高德地图微信小程序SDK

高德开放平台:

注册账号( https://lbs.amap.com/)) 申请小程序应用的 key
image.png

应用管理( https://console.amap.com/dev/key/app)) -> 我的应用 -> 创建新应用
image.png
生成的 key 即可用在程序中

  • 下载相关 sdk 文件,导入 amap-wx.js 到项目中:https://lbs.amap.com/api/wx/download

微信小程序:

1.在创建的项目中,新建一个名为 libs 目录,将 amap-wx.js (amap-wx.js 从 相关下载页面下载的 zip 文件解压后得到)文件拷贝到 libs 的本地目录下,如下图所示。
image.png

2.设置小程序安全通讯域名,为了保证高德小程序 SDK 中提供的功能的正常使用,需要设置安全域名。
登录微信公众平台,在 “设置”->“开发设置” 中设置 request 合法域名,将 https://restapi.amap.com 中添加进去,如下图所示:

  1. app.json中加入
"permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于小程序位置接口的效果展示",
      "dowload": "您的文件访问权限用于打开文件"
    }

  },

在你需要引用地图的页面的js文件中引入 amap-wx.js 文件。

var amapFile = require('../../../libs/amap-wx.130'); //如:..­/..­/libs/amap-wx.js

完整代码


// pages/map/map-container/map-container.js
import {
  baipaoGps
} from "../../../utils/api/car.js";
//百度地图
var bmap = require('../../../libs/bmap-wx.min.js');
//高德地图
var amapFile = require('../../../libs/amap-wx.130');
Page({
  data: {
    longitude: 117.3590007750093, //经度
    latitude: 22.846911841310202, //维度
    scale: 17, //地图默认缩放等级
    showModal: false, //弹框显隐
    modalData: {}, //详情信息
    G: {
      pi: 3.141592653589793,
      a: 6378245,
      ee: .006693421622965943,
      x_pi: 52.35987755982988
    },
    licence: '', //车牌号
    markers: [], //点位数据
    gpsInfo: {}, //定位数据
  },

  onLoad: function (options) {
    if (options) {
      if (options.gpsInfo) {
        const decodedGpsInfo = decodeURIComponent(options.gpsInfo);
        const gpsInfo = JSON.parse(decodedGpsInfo);

        if (gpsInfo.type === '2') {
          // // 创建百度地图实例
          const BaiDuMap = new bmap.AMapWX({
            key: '', // 你的高德地图API Key
          });
        } else if (gpsInfo.type === '2') {
          // 创建高德地图实例
          const myAmapFun = new amapFile.AMapWX({
            key: '', // 你的高德地图API Key
          });
        }
        this.data.markers.push(gpsInfo);
        this.setData({
          markers: this.data.markers
        });
        // //初始化地图
        // this.mapCtx = wx.createMapContext('map');
        this.loadMarkers();
      }

    } else {
      wx.showToast({
        title: '车牌号为空',
        icon: 'none'
      })
    }
  },

  loadMarkers: function () {
    //生成 markers 列表,用于在地图上展示
    let markersData = this.data.markers.map(marker => {
      // console.log(marker)
      var a = this.transfor2Mars(Number(marker.lat), Number(marker.lng));
      return {
        id: Number(marker.id),
        longitude: a.Lng,
        latitude: a.Lat,
        vehNum: marker.licenseName,
        location: marker.address,
        iconPath: '../../../static/img/marker.png',
        width: 40,
        height: 40,
      };

    });
    this.setData({
      markers: markersData,
      longitude: markersData[0].longitude,
      latitude: markersData[0].latitude
    });
  },
  // 点击标记点时触发
  markertap(e) {
    //点击 marker 时触发,获取对应的点位信息并展示弹框
    // console.log(e.detail)
    let markerData = this.data.markers.find(marker => marker.id === e.detail.markerId);
    this.setData({
      showModal: true,
      modalData: markerData
    });
  },
  // 关闭弹框
  onClose() {
    this.setData({
      showModal: false
    });
  },
  navigateToMap() {
    const modalData = this.data.modalData;
    const {
      longitude,
      latitude
    } = modalData;
    // 调用小程序API打开高德地图并进行导航
    wx.openLocation({
      longitude,
      latitude,
      name: modalData.location, // 标记点名称,可根据实际情况设置
      scale: 18, // 地图缩放级别,可根据实际情况设置
    });
  },
  isOutOfChina(e, a) {
    return a < 72.004 || a > 137.8347 || (e < .8293 || e > 55.8271)
  },
  transforLat(e, a) {
    var t = 2 * e - 100 + 3 * a + .2 * a * a + .1 * e * a + .2 * Math.sqrt(Math.abs(e));
    return t += 2 * (20 * Math.sin(6 * e * this.data.G.pi) + 20 * Math.sin(2 * e * this.data.G.pi)) / 3,
      t += 2 * (20 * Math.sin(a * this.data.G.pi) + 40 * Math.sin(a / 3 * this.data.G.pi)) / 3,
      t += 2 * (160 * Math.sin(a / 12 * this.data.G.pi) + 320 * Math.sin(a * this.data.G.pi / 30)) / 3
  },
  transforLng(e, a) {
    var t = 300 + e + 2 * a + .1 * e * e + .1 * e * a + .1 * Math.sqrt(Math.abs(e));
    return t += 2 * (20 * Math.sin(6 * e * this.data.G.pi) + 20 * Math.sin(2 * e * this.data.G.pi)) / 3,
      t += 2 * (20 * Math.sin(e * this.data.G.pi) + 40 * Math.sin(e / 3 * this.data.G.pi)) / 3,
      t += 2 * (150 * Math.sin(e / 12 * this.data.G.pi) + 300 * Math.sin(e / 30 * this.data.G.pi)) / 3
  },

  transfor2Mars(e, a) {
    if (this.isOutOfChina(e, a))
      return {
        Lat: e,
        Lng: a
      };
    var t = this.transforLat(a - 105, e - 35),
      r = this.transforLng(a - 105, e - 35),
      n = e / 180 * this.data.G.pi,
      o = Math.sin(n);
    o = 1 - this.data.G.ee * o * o;
    var s = Math.sqrt(o);
    return {
      Lat: e + (t = 180 * t / (this.data.G.a * (1 - this.data.G.ee) / (o * s) * this.data.G.pi)),
      Lng: a + (r = 180 * r / (this.data.G.a / s * Math.cos(n) * this.data.G.pi))
    }

  },
})

<view>
	<!-- 地图控件 -->
	<view>
		<map id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="{{scale}}" markers="{{markers}}"
			bindmarkertap="markertap">
		</map>
	</view>
	<!-- 弹框 -->
	<view>
		<van-popup closeable bind:close="onClose" round custom-style="height: 30%" position="bottom" show="{{ showModal }}"
			bind:close="onClose">
			<view class="detailsBox">

				<view>
					<text>车牌号码 :</text>
					<text>{{modalData.vehNum}}</text>
				</view>
				<view>
					<text>所在位置:</text>
					<text>{{modalData.location}}</text>
					<view class="dh" bindtap="navigateToMap">地图导航
						
					</view>
					<image style="width:30px;height:30px;margin-top: 5px;position: absolute;"
							src="/static/img/map/daohang.png"></image>
				</view>


			</view>
		</van-popup>
	</view>
</view>
#map{
  width: 100%;
  height: 100vh;
}

.detailsBox{
  padding: 20rpx 20rpx 0rpx 28rpx;
  font-size: 28rpx;
}
.detailsBox view:nth-child(n+2){
  margin-top: 20rpx;
}
view{
  font-size: 18px;
}
.dh {
  display: inline-block;
  /* padding: 10px 20px; */
  color: rgb(76, 36, 255);
  font-size: 15px;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin-left: 20px;
}

.dh:hover {
  background-color: #0056b3;
}



微信小程序----高德地图API实现的DEMO
02-07
微信小程序----高德地图API实现的周边,天气,路线规划,地址详情等的DEMO。简单的效果,问一下官方能不能不要乱涨积分,你们涨积分,作者被骂!我真的很失望,再这样,我就不上传资源了!
微信小程序中进行地图导航功能的实现方法
08-27
主要介绍了微信小程序中进行地图导航功能的实现方法,需要的朋友可以参考下
使用微信小程序开发实现定位和导航功能
最新发布
一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟!
08-04 2564
在移动应用开发中,定位和导航功能是许多应用场景的核心组成部分。微信小程序作为一种便捷的移动应用形式,也支持实现这些功能。本文将详细介绍如何在微信小程序中集成定位和导航功能,并提供详细的代码示例和实用技巧,帮助开发者更好地理解并掌握这一技术。通过上述示例和技术分析,我们可以看到微信小程序提供了强大的定位和导航功能。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身农奴把歌唱,
微信小程序 高德地图路线规划实现过程详解
10-16
主要介绍了微信小程序 路线规划实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
小程序使用高德地图 map 导航路线规划 amap-wx.js 文件(amap-wx.js 从相关下载页面下载的 zip 文件
06-07
小程序使用高德地图 map 导航路线规划 (amap-wx.js 从相关下载页面下载的 zip 文件 使用场景:uniapp和小程序使用高德地图(map)可以引用这个文件,getRegeo(获取当前地址),getDrivingRoute(驾车从开始位置到终点)计算距离和时间 适合人群:前端开发
微信小程序基于高德地图API出行路线规划、地图导航
01-27
miniProgramAmap 微信小程序基于高德地图API出行路线规划,地图导航 体验二维码,微信扫一扫
微信小程序地图插件系列(一):微信小程序使用高德地图(不定期更新)
热门推荐
实事求是,艰苦奋斗,小小的梦想,终将实现。
12-10 2万+
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例
微信小程序开发(第二天)-引用高德地图、定位等
梁白开的博客
09-04 4307
如何引用高德地图
小程序 获取当前城市位置-高德地图
Start2019
01-21 9434
小程序获取位置信息,包括省市区、用户拒绝后,调起用户授权设置页,重新授权获取位置信息
微信小程序高德地图
xueer43的博客
07-25 5540
微信小程序地图组件使用
微信小程序中加载高德地图
whbke的博客
04-05 2095
微信小程序中加载高德地图
微信小程序地图导航代码
06-11
微信小程序地图导航代码,经测试,可正常使用。紫署布丁
微信小程序基于高德地图查找位置并显示文字
10-16
微信小程序开发中,有时我们需要集成地图功能,例如利用高德地图API来查找位置并显示相关的文字信息。本文将详细讲解如何实现这一功能。 首先,要实现基于经纬度在地图上查找定位,我们需要引入高德地图小程序...
医疗床位查询小程序-微信小程序
06-05
3. **地图导航**:集成高德或百度地图API,显示医院位置及具体床位的楼层位置,方便用户前往。 4. **床位预订**:用户选定床位后,完成在线预约,系统会发送预约确认信息。 5. **消息通知**:当床位状态发生变化时,...
微信小程序开发:深入实现地图导航功能【含代码示例】
一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟!
05-04 4108
微信小程序作为一种轻量级的应用程序,凭借其无需安装、即用即走的特点,迅速在移动应用市场中占据了一席之地。其中,地图导航功能作为许多小程序不可或缺的一部分,对于提升用户体验、增加用户粘性具有重要意义。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。为了实现导航功能,我们需要在地图上添加起点、终点等标记点,并绘制导航路线。一个做过前端开发的产品经理🧑,经历过睿智产品的折磨导致脱发之后👴,励志要翻身"农奴"把歌唱,然后,在需要使用地图的页面的。
微信小程序高德地图搜索周边poi接口实践
草灯的专栏
12-28 8156
近期一直在研究小程序地图组件开发,使用的是高德微信小程序sdk查找周边poi数据,并展示到地图上。 根据getPoiAround接口协议传入对应的参数测试发现目前该接口最多只能返回20条数据,不支持分页,重要的是他的第一条数据默认是选中态,如果想要保证所有的图标一致性还得在传入iconPathSelected属性。而这些都在官方上得到了证实: 测试实例代码如下: js代码: c
微信小程序使用高德地图实现检索定位附近周边的POI功能示例
weixin_46753476的博客
08-22 3454
解压下载的文件得到 amap-wx.js ,在创建的项目中,新建一个名为 libs 目录,将 amap-wx.js 文件拷贝到 libs 的本地目录下。,在 "设置" → "开发设置" 中设置 request 合法域名,将。
微信小程序】免费的高德地图api——获取天气(全过程)
weixin_60387745的博客
03-18 8533
微信小程序】免费的高德地图api——获取天气(全过程)
微信小程序开发:实现地图导航功能
吃不胖.
08-15 4744
地图导航功能是近年来移动应用中极为常见的功能之一,它能够为用户提供准确的地理位置信息以及最佳的路线规划,帮助用户快速准确地找到目的地。微信小程序开发中的地图导航功能,需要通过多种技术手段综合实现,包括地图API、定位、路线规划、搜索服务等,下面将详细介绍这些技术手段的实现。开发者可以通过腾讯地图API中提供的搜索服务接口,实现关键字搜索功能。在用户授权后,开发者可以通过小程序API中提供的接口,获取用户当前的位置信息。腾讯地图API提供了地图交互的接口,开发者可以在小程序中调用该接口,实现地图交互功能。
微信小程序接入高德地图api实现公交路线查询
05-23
要在微信小程序中接入高德地图API实现公交路线查询,需要进行以下步骤: 1. 在高德开放平台上注册并创建应用,获取应用的API Key。 2. 在微信小程序中引入高德地图JavaScript API SDK,可以通过以下方式: ``` <script src="//webapi.amap.com/maps?v=1.4.15&key=your_amap_key"></script> ``` 3. 在小程序中创建地图对象,并调用高德地图API提供的公交路线查询服务实现路线查询。示例代码如下: ``` // 创建地图对象 var map = new amapFile.AMapWX({ key: 'your_amap_key' }); // 调用公交路线查询服务 map.getTransitRoute({ origin: '当前位置', destination: '目的地', success: function(data) { console.log(data); }, fail: function(info) { console.log(info); } }); ``` 在上述代码中,`getTransitRoute`方法用于查询公交路线,其中的`origin`和`destination`参数分别表示起点和终点,可以是地名、地点或经纬度坐标。查询成功后,返回的数据包含多条路线信息,开发者可以根据自己的需求进行解析和展示。 需要注意的是,在使用高德地图API时,需要遵守高德地图开放平台的相关规定和限制。
写文章

热门文章

  • 高德地图实现-微信小程序地图导航 11496
  • vue滑动验证码 4553
  • vue父组件点击事件向子组件传递值 4284
  • Vue使用百度地图以及实现轨迹回放 附完整代码 3642
  • MYSQL根据查询结果删除sql 去除重复id 新增对比前一条与后一条数据 去重3种方法​ 窗口函数 3517

分类专栏

  • k8s 14篇
  • java 4篇
  • go
  • 高德地图 4篇
  • 微信小程序 2篇
  • vue 1篇
  • mybatis-plus 3篇
  • EMQX

最新评论

  • window10下安装ubuntu系统以及docker使用

    sunsuncode: 内核更新包有用

  • 高德地图实现-微信小程序地图导航

    咕噜咕噜wy: import { baipaoGps } from "../../../utils/api/car.js"; 这一行没有引用的可以删掉

  • 高德地图实现-微信小程序地图导航

    23#.lsy: Error: module 'utils/api/car.js' is not defined, require args is '../../../utils/api/car.js'

  • 高德地图实现-微信小程序地图导航

    23#.lsy: 解压了,没有找到

  • 高德地图实现-微信小程序地图导航

    咕噜咕噜wy: https://lbs.amap.com/api/wx/download

大家在看

  • 电动采光排烟天窗有多重,具体荷载重量是多少? 379
  • 操作系统篇 660
  • 在使用PyQt5的时候,怎么根据结构体所含的变量个数,自动创建对应lineEidt来接收数据传给结构体 40
  • Java程序员无聊时会做什么--JavaFX和JavaCV写一个自己的桌面应用玩玩,第4章,记录一个AI生成的视频剪辑工具的诞生。视频批量分割,视频批量混剪,视频自动剪辑,小视频批量生成,视频批量转图 282
  • 程序员如何选择操作系统 Mac、Windows还是Linux 278

最新文章

  • 镜像私服Harbor 2.0安装-探索工厂模式:如何优化Harbor项目管理与API集成
  • Stable Diffusion文生图-图生图-ControINet插件-线稿上色-生产全套表情包-3D Openpose-局部重绘-换衣服,换姿势人设三视图一键生成教程大全
  • Helm安装集群整理
2024年18篇
2023年10篇
2022年11篇
2021年24篇

目录

目录

评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咕噜咕噜wy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳坪山网站建设公司贵州专业网站优化产品介绍网站优化广告公司阳江网站搜索引擎优化竞价电子商务网站推广优化技术荆州低成本网站优化哪家好杨浦区网站优化方案河南家具行业网站优化推广方案优化政务服务网站新乡搜索引擎网站优化平台刷手机网站优化排360影视网站tdk优化纺织网站seo优化费用emlog优化网站潜江市网站关键词优化哪家好濮阳企业网站优化推广有用吗怎么看网站是否优化地图优化网站论坛东至网站优化哪家性价比高长宁区官方网站优化费用安阳官网seo网站优化软件智能网站排名优化无锡企业网站优化平台焦作优化型网站建设海阳h5动效网站优化公司网站优化关键词搜索下拉网站优化新方法网站优化的页面都有哪些兰州网站排名优化工具具昌吉州网站优化推广平台优化推广营销网站香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化