前言:本以为很简单就可以解决的一样东西,就是在地图特定位置放置一个覆盖的图片就好了,实际上却是很简单,但是可惜你做的是小程序,这样子思路就会被截断。先自己摸索百度,最后发现这个版块是微信自家的服务,不对外开放,想要开放那就要问问它,最后发动是钞能力啦,这明显不符合要求。所以想过几种方法,最后使用的是web-view 嵌套 高德地图的自定义地图的方法实现。

思路:

因为经过试验,所有微信方面小程序的方法,都不能满足要求,都不能实现如下效果

所以只能通过先做好一个H5的地图,通过web-view标签 嵌套在小程序,这样就能达到这种效果,我这边使用的是高德地图的自定义功能,高德的都是用编程的方式,所以都是代码块,没有像小程序那种可以使用标签写的。

因为这类的模板很多都不免费分享,这让我很懊恼。索性自己做了一个demo 然后分享出来供有需要的人使用,毕竟看微信开发者文档中挺多人求,但是都没热心人去分享。

一、引入高德地图

1.到高德开发平台申请账号,在控制台创建相关的应用,这里我们使用的网页的api,也就web端,拿到key就可以了

  1. 这里的步骤就可以用这位博主的方法,我也是用他的方法 然后跟着文档改出来的
    @小傲哥哥

二、使用

上面的博主的一定要看。
标签

<template><div style="width: 100vw;height: 100vh;"><div id="map"  style="width: 100vw;height: 100vh;position: absolute;"></div></div>
</template>

先引入js文件

import AMap from '../../utils/utils.js'

data数据是上面博主的摘抄下来的

data() {return {title:'hello',provider:'',map: null,zoom:15,resAmap:null,scrollH:500,scrollW:500,initLat:38.913423,//初始维度initLng:116.368904,//初始经度covers:[],LlayAroundGroupOpen:true,  //l网周边}}

其实就这么一段代码是有用的,要是看不懂可以直接看官方文档的图片覆盖
图层覆盖

async initAMap() {try {this.resAmap = await AMap();this.$nextTick(() => {let that = this// this.getBroewerLatLng();console.log('这是获取到的方法',this.resAmap)var map = new this.resAmap.Map('map', {center: [this.initLng, this.initLat],zoom: this.zoom,resizeEnable: true});this.map = map;var imageLayer = new this.resAmap.ImageLayer({bounds: new this.resAmap.Bounds(       // 这是你 地图铺在哪里的地方 虚假数据请勿使用[114.086041, 23.600853], //图片左下角  第一位 +的话右移 - 左移 [114.099361, 23.581953], // 图片右上角),url: 'https://amappc.cn-hangzhou.oss-pub.aliyun-inc.com/lbs/static/img/dongwuyuan.jpg', // 这是你覆盖在地图的图片zIndex:2,zooms: [3, 20] // 设置可见级别,[最小级别,最大级别]})// 创建一个 Iconvar startIcon = new this.resAmap.Icon({// 图标尺寸size: new this.resAmap.Size(40, 40),// 图标的取图地址image: 'https://lbs.amap.com/demo/jsapi-v2/example/selflayer/imagelayer', // 图标所用图片大小imageSize: new this.resAmap.Size(40, 40),})var infoWindow = new this.resAmap.InfoWindow({offset: new this.resAmap.Pixel(0, -30)});// 这里的marker 就是地图上面的你显示的景点的标点,要多少个可以循环var marker = new this.resAmap.Marker({icon:startIcon,position:  [114.086041, 23.600853], // 这是定位的点map: map,// 这是下标显示的名字, 我这里没注意看 所以用了偏移值,其实可以只用 top 改成 bottom 应该也一样label: {direction: 'top', // 显示在标记图片的什么地方content: "<div class='labelContent'>"+'小青龙'+"</div>",offset: new this.resAmap.Pixel(0,70) // 偏移值 }});// 设置点 点击时候触发的方法marker.on('click', markerClick);marker.emit('click', {target: marker});// 设置定位地点为标点的中心map.setFitView();map.add(imageLayer);map.on('click', this.showInfoClick); // 地图点击的方法console.log(this.map)//解析定位结果// var then = this;function onComplete(data) {console.log(data) // 获取到的定位信息}function markerClick(e) {console.log('点击到的e',e.target)}function onError(data) {console.log(data) // 定位失败的信息}})} catch (e) {console.log(e)}}

到了这里就完成了,只需要把这个项目部署在公网上,然后小程序直接用

 <web-view src="公网地址" style="width: 100vw;height: 100vh;"></web-view>

// ========================== 修改2021-7-6 ==================//
补充一句: 公网地址在发布正式版本中,需要去微信管理平台补充 公网域名作为业务地址才行,不然那会出现网页非法不能查看的情况。

uni-app 地图手绘图覆盖方案,类似智慧景区小程序相关推荐

  1. uni.app流量主激励视频调用(示例为抖音小程序)

    为了保证不重复调用广告组件,我们在全局app.vue文件引入,赋值到公共实例上 app.vue文件 <script>import * as config from '@/utils/con ...

  2. 让小程序在自有App中启动的技术来了:mPaaS小程序架构深度解析

    简介:mPaaS 小程序框架作为一款 App 通用框架,帮助开发者面向自身的 App 实现小程序投放.不止如此,小程序代码仅需撰写一次,便可多端投放至自有 App.支付宝.钉钉甚至其他小程序开放平台. ...

  3. App前端,Web前端,后端,微信小程序到底该学啥?

    互联网行业发展的速度之快,让每一个从事IT行业的人员目不暇接.作为IT行业的人才,需要不断地学习新知识,否则很容易落伍.2016年,人工智能与虚拟现实着实火了一把,当然,深入研究这两门技术的大多是大公 ...

  4. 手撸一个仿蚂蚁森林微信小程序

    每天逛逛CSDN,看看大牛们的技术文章,查找自己想了解的知识,是我必做的事情. 每天到支付宝看看自己的余额,看看自己的33块钱还在吗?顺便到蚂蚁森林收下自己和好友的能量是我必做的事.看着自己的能量又被 ...

  5. 微信小程序地图插件系列(二):微信小程序使用百度地图(不定期补充知识点)

    前言 当我们在使用一些地图相关软件的情况下,他会显示选择那种.一般都有高德地图,百度地图等.那么我们在微信小程序中也想使用这种功能需要怎么办呢? 本文地址链接 微信小程序-百度地图SDK官方文档 微信 ...

  6. 微信小程序实现微信APP上的扫一扫扫码跳到小程序对应的结果页面和签字等功能

    最近做了一个小程序项目,这个小程序是搭配APP端使用的,大概需求是这样的,用户用微信的扫一扫或小程序首页的扫一扫都可以实现对APP上的二维码进行扫码识别,识别成功之后跳到页面进行渲染,然后用户可以对其 ...

  7. 今日头条适配方案_探索头条小程序开发!JavaScript为什么成了众多小程序的首选?...

    从13年百度率先提出轻应用的概念以来,支付宝,微信等好多大流量App都借助自己的平台,推出了小程序.小程序的优势很明显:轻量.无需安装.随用随走.性能又可以媲美原生的应用,更重要的是可以充分发挥各自平 ...

  8. 智慧物业小程序_智慧社区APP、智慧社区小程序,你想要的都在这里!

    现阶段随着我国智能手机普及,手机功能的不断集成与强化,手机成为了我们日常工作与生活中使用频率最高的产品之一.除了时下热门的移动支付外,手机开门也成为当下流行的趋势. 随着人工智能.物联网.大数据技术的 ...

  9. 八一、 mpvue-使用介绍(美团团队开发的语法类似 vue的小程序的前端框架)

    1. mpvue-介绍 mpvue 是美团团队开发的语法类似 Vue.js 的小程序的前端框架 官网 开发文档 1.1. 主要特性 主要有以下特性 彻底的组件化开发能力:提高代码复用性 完整的 Vue ...

最新文章

  1. ckeditor5加字数_ckeditor字数限制
  2. 模态对话框和非模态对话框区别
  3. 【Leetcode | 42】129. 求根到叶子节点数字之和
  4. 这么多人,AI怎么知道你说的是哪个? | 李飞飞团队CVPR论文+代码
  5. Jenkins 文档特别兴趣小组
  6. java 优先队列_优先队列Java
  7. cat 监控 java,分布式监控CAT客户端的SpringBoot集成
  8. scholarscope不显示影响因子_反馈页面
  9. mysql游标少循环_掌握更少的后卫和循环
  10. python极速入门(适合有基础)
  11. Codeblock 美化字体和主题
  12. 小米无线AR眼镜探索版细节汇总
  13. 详解linux杀死进程方法:kill、pkill、killall之间的区别及用法!
  14. 自制导航App(包含地图、定位、自定义marker、路线制定、模拟导航等功能)
  15. 多级分销系统(代理商佣金管理模块)设计概要(要求和数据库设计)
  16. Fast and Accurate Extrinsic Calibration for Multiple LiDARs and Cameras
  17. 产品经理入门必备书籍
  18. Unity使用滚动条Slider控制声音音量
  19. 通过OSS浏览器劫持阿里云Bucket
  20. gta5服务器错误 无法在线登录,GTA5在线登陆失败您从未在此机器上成功登录过怎么办 在线登陆失败解决方法介绍...

热门文章

  1. 手撕自动驾驶算法——无迹卡尔曼滤波(UKF)
  2. 【必看干货】在我面了10多家大厂(上岸)后,我吐血总结你要是这12道题都不能拿满分,那你就与大厂算法无缘了 ——AI视觉算法工程师
  3. 内核驱动隐藏【绕过PatchGuard】
  4. java实现第七届蓝桥杯交换瓶子
  5. web项目使用maven打jar包方式
  6. pycharm使用eval reset不能重置
  7. python if in 表达式方式
  8. android 如何获得附近的wifi,Android细节:扫描获取附近wifi,并以列表形式进行展示...
  9. 计算机如何区分程序和数据,计算机如何区分数据和指令?
  10. Java实现 稀疏矩阵乘积