[Vue] 9. vue-amap高德地图初体验

vue结合高德地图 vue-amap 实现只显示一个省,地图截图 vue结合高德地图 vue-amap 实现只显示一个省,地图截图 奇葩需求!! 非要地图只显示一个省,又不喜欢用echarts绘制的那种。就是要地图,然后截出一个省出来。 无论是高德地图,还是百度地图,貌似都没直接提供这种功能哦~~ 折腾了好久终于找到实现方法! 可谓思路不对,努力白费! 思路就是:查出想要显示的省或市的轮廓经纬度,然后在遥远的地方弄4个点的经纬度(因为地球是圆的),然后把这四个点的经纬度和目标城市的轮廓经纬度放在一起,绘制一个很大很大的覆盖物,地球是圆的,你可以自己想象一下这个覆盖物的样子 阅读详情

 

效果:

就是get请求在URL后面输入名称,请求后台返回经纬度坐标后在地图上显示出来

实现:

1.main.js配置路由与引入高德地图配置

2.主界面 map.vue,实例化地图,调用api方法

3.api文件夹里的api.js  包括坐标转换函数,请求后台的函数 (略)

4.axios封装(略)

 

1.main.js

首先要npm  install  vue-amap --save 安装

import VueAMap from 'vue-amap';
Vue.use(VueAMap);
VueAMap.initAMapApiLoader({
  // 高德的key
  key: '在高德地图api中心申请',
  // 插件集合
  plugin: ['AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor'],
  // 高德 sdk 版本,默认为 1.4.4
  v: '1.4.15'
});

2. 主界面map.vue

 

先初始化信息

           <el-amap
              :plugin="plugin"
              :amap-manager="amapManager"  //绑定地图管理器
              :zoom="zoom"                 //放大倍数
              :center="center"             //绑定地图中心
              vid="amapDemo"               //地图类型
              ref="reds"
              style="width:100vw;height:100vh"
              :events="events">
           </el-amap>
<script>
import { AMapManager } from "vue-amap";
import {getShipState,transformWGS84ToGCJ02} from '@/api/getshipstate'

let amapManager = new AMapManager();//地图管理器
var map = amapManager.getMap();//地图示例

export default {
data() {
    return {
        //map
        amapManager,
        center: [116.303843, 39.983412],
        plugin: [
          {
            pName: "Scale",
            events: {
              init(instance) {
              console.log(instance);
              }
            }
          }
        ],
        zoom: 12,
        events: {
        },
     }
},
methods:{
    //声明方法
},
mounted(){
    //加载好后执行的语句
}
</script>

 

然后我们在methods里声明getFuck()方法,在mounted里this.getFuck()调用,这样等页面进入时就会自动调用

重点是一些高德地图内置的api

比如 

let map= amapManager.getMap()//获取地图实例

map.setZoomAndCenter(13, t)//设置地图中心函数等

     getFuck() {

        let shipmsg = this.$route.query.shipmsg//获取get请求上的参数
        let key=this.$route.query.key//获取get请求上的参数
        //console.log("shipmsg:"+shipmsg)
        if(shipmsg!=null){
            getShipState(shipmsg).then((res)=>{
              
              let Ackcod=res.Ackcod
              if(Ackcod==0){
                 alert("暂无数据")
              }else{
                 
                  let lng=res.Data[0].JD
                  let lat=res.Data[0].WD
                  let tim=res.Data[0].CJSJ
                  tim=tim.substring(0,tim.length-3)
                  console.log("后台返回的lng:"+lng+" lat:"+lat)
                  let t=transformWGS84ToGCJ02(lng,lat)//转换成GCT02格式
                
                  let map= amapManager.getMap()//获取地图实例
                  map.setZoomAndCenter(13, t)//设置地图中心函数
                      
                      
                      //新建坐标点
                      let marker= new AMap.Marker({
                      icon: "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png",
                      position: t,
                      offset: new AMap.Pixel(-13, -30)
                      });
                      marker.setMap(map)//将坐标点应用于地图实例

                      //新建文本框
                      var text = new AMap.Text({
                      text:shipmsg,
                      anchor:'center', // 设置文本标记锚点
                      draggable:true,
                      cursor:'pointer',
                      angle:0,
                      style:{
                          'padding': '.75rem 1.25rem',
                          'margin-bottom': '1rem',
                          'border-radius': '.25rem',
                          'background-color': 'rgba(255, 255, 255, .4)',
                          'width': '13rem',
                          'border-width': 0,
                          'box-shadow': '0 2px 6px 0 rgba(114, 124, 245, .5)',
                          'text-align': 'center',
                          'font-size': '20px',
                          'color': 'blue'
                      },
                      position: t,
                      offset: new AMap.Pixel(10, -63)
                      });
                      text.setMap(map)

                      //新建文本框
                      var text2 = new AMap.Text({
                      text:tim,
                      anchor:'center', // 设置文本标记锚点
                      draggable:true,
                      cursor:'pointer',
                      angle:0,
                      style:{
                          'padding': '.75rem 1.25rem',
                          'margin-bottom': '1rem',
                          'border-radius': '.25rem',
                          'background-color': 'rgba(255, 255, 255, .4)',
                          'width': '13rem',
                          'border-width': 0,
                          'box-shadow': '0 2px 6px 0 rgba(114, 124, 245, .5)',
                          'text-align': 'center',
                          'font-size': '20px',
                          'color': 'blue'
                      },
                      position: t,
                      offset: new AMap.Pixel(10, -20)
                      });
                      text2.setMap(map)

              }
             
            })
        }
        else{
          console.log("over")
        }

    },

3.请求后台的函数getShipState 这个随便写写就好了,灵活处理

文档地址:https://lbs.amap.com/api/javascript-api/summary

vue项目中调用高德地图vue-amap 插件 的AMap.PlaceSearch简用 vue项目调用高德地图vue-amap 插件 的AMap.PlaceSearch简用 结合 elementui 的 el-input 直接下拉选取地点 不展示地图 1.下载 npm install vue-amap --save 2.直接在mian.js import AMap from 'vue-amap'; Vue.use(AMap); // 初始化vue-amap AMap.initAMapApiLoader({ // 高德key key: '自己的高德key', 阅读详情

相关推荐

vue-amap基于高德地图的vue组件使用

1. 文档https://elemefe.github.io/vue-amap/#/2. 安装`npm install vue-amap --save`3. 引入地图在main.js中引入`import AMap from 'vue-amap';Vue.use(AMap);AMap.initAMapApiLoader({  key: 'your amap key',  plugin: ['AMap...

水冰月的小兔子的博客 6332

vue 引入js_Vue-cli3/4中使用AMap、BMap

首先 国内三大地图服务商 高德地图(AMap)腾讯地图(qqmap) 百度地图(BMap)其中AMap 和 qqmap 使用的坐标系为 GCJ02 火星坐标系BMap使用的坐标系为 BD09 百度坐标系,BD09是在GCJ02二次加密的基础上诞生的下面进入正题AMap第一步在public/index.html中引入amap的script,注意在key=后面填写自己申请的key(高德地图开放平台)第...

weixin_39742727的博客 731

【vue高德地图】点位+多个覆盖物

点位 实现效果: 参考:基于vue+elementUI的网页中使用地图组件vue-amap高德地图 这个超详细!宝藏! 覆盖物 实现效果: 在上面地图基础配置上进行操作的。 <template> <div> ………… <el-container class="searchBox"> <!-- 这个控制地图显示位置大小 --> <!-- 显示地图的div --> <template>

Hiroomi的博客 1386

在vue中wgs84和gcj02互相转化,地球坐标系转火星坐标系

在开始转化前先理清几个名词的定义,以及为什么要转化? WGS-84坐标系:也叫地球坐标系,他是国际上通用的坐标系,谷歌地图用的就是WGS-84(谷歌中国除外),使用GPS芯片或者 北斗芯片的设备获取到的经纬度就是符合WGS-84坐标系的。 GCJ-02坐标系:也叫 火星坐标系或国测坐标系,他是由中国国家测绘局独创的坐标体系;它是一种对经纬度数据的加密算法,即 加入随机的偏差,国...

前端攻城狮 5469

vue项目使用高德地图定位当前地址

vue项目使用高德地图定位当前地址一、在项目中安装vue-amap插件二、页面代码三、data数据 一、在项目中安装vue-amap插件 1.最终效果 2.安装命令 npm install vue-amap --save 3.在main.js中引入 import VueAMap from 'vue-amap' Vue.use(VueAMap) VueAMap.initAMapApiLoader({ key: 'dd4cc5f831b67cde767de9a65f983650', plug

weixin_43242112的博客 2890

vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)

1.首先在index.html引入高德地图的秘钥。如图: 注意:如果使用关键字搜索功能要加上 plugin=AMap.Autocomplete,AMap.PlaceSearch,否则功能无法使用,并会报错 2. 定位功能,代码如下: const map = new AMap.Map(this.$refs.container, { resizeEnable: true }) // 创建Map实例 const options = { &#39;showButton&#39;: true, // 是否显示定位按钮 &#39;buttonPosition&#39;: &#39;LB&#39;, // 定位按钮

vue 地图坐标相互转换(GCJ-02,BD-09,WGS84)百度,火星,高德等坐标相互转换(最全代码,开箱即用)

地图坐标相互转换

qq_53722480的博客 1929

Gamit10.71添加新的天线类型

添加新的天线类型需要涉及到四个文件:antmod.dat,rcvant.dat,guess_rcvant.dat,hi.dat。 注意:格式要一致!!! 举例说明,我要添加一个JCA229的天线(带JCAD天线罩),对应接收机使用的是南方的South Net-S9。

Penny的博客 2711

vue中引入高德地图

总的来说,vue组件中使用高德地图的方式有两种,一种是vue-amap :一套专门用于vue的高德地图插件;另外一种是原生的高德地图。 方式一、vue-amap: 官网API:直达车 (1)、安装依赖: npm install vue-amap -S 或者淘宝镜像: cnpm install vue-amap -save 亦或(CDN的方式获取最新版本的资源): <sc......

前端-尔嵘 2万+

空间节省算法在Rowhammer防御中的应用与优化

空间节省算法(Space-Saving)是一种高效的流式数据处理算法,主要用于在有限内存条件下实时识别数据流中的高频项。其核心原理是通过维护固定大小的计数器表,动态跟踪最活跃的元素,适用于处理无限数据流场景。该算法在内存安全领域具有重要价值,特别是在Rowhammer攻击防御中,能够有效检测异常高频访问的DRAM行地址。通过结合计数器衰减策略(如DSAC)和混合架构设计,空间节省算法可以在保证低硬件开销的同时,提供高精度的攻击检测能力。这些技术已成功应用于现代DDR5内存控制器,展现出优异的工程实践价值。

weixin_31139479的博客 606

NoUnityCN:绕过地域限制,从Unity官方CDN直链下载全版本编辑器

在软件开发和游戏制作领域,内容分发网络(CDN)是保障全球用户高速、稳定获取大型文件的核心基础设施。其原理是通过将资源缓存至遍布各地的边缘节点,使用户能从地理距离最近的服务器获取数据,从而显著提升下载速度并降低源站压力。这一技术对于需要频繁下载大型开发工具(如游戏引擎)的团队而言,价值在于能确保开发环境部署的一致性与效率,是构建自动化CI/CD流水线和团队协作的基础。然而,当开发者因网络策略或地域限制无法直接访问官方CDN时,获取安装文件便成为阻碍工作流的痛点。NoUnityCN项目正是针对此场景的工程实践

weixin_33473110的博客 312

Vue 3.0使用高德地图 vue-amap

这篇文章写一下高德地图的简单应用,本人也是刚入坑,在研究阶段 注册高德开发者账号,申请KEY完成注册 注册完再打开控制台->应用管理->找到“+添加新KEY”->点击会跳出这个弹框: vue安装vue-amap npm install vue-amap --save index.html 引入 <script type="text/javascript" src="h...

m0_45043105的博客 8400

基于cat12和SPM12进行VBM&SBM数据分析笔记1——数据预处理

基于cat12数据分析基础教程笔记 今年是小编步入研究生生活的第一年,研究方向待定,但主要以磁共振成像为主,以后会不断地总结这方面的知识,涉及MRI扫描,数据分析基础方法理论,软件操作教程,文献阅读笔记总结等等,用来记录我的研究生三年学习过程。编写尽量简洁明了,通俗易懂,本就是小白,也能体会小白的痛。不过这也要谢谢一个人手动@小白(网名),是他教我要把自己所学的写下来,讲出来才能真正的做到输入和输出,查漏补缺。而cat12软件操作是我面临的第一个数据分析的训练,写的可能也不会非常到位,还望各位专业人士指出改

Sophia2023的博客 4万+

vue-aMap高德地图的应用(添加覆盖物点坐标、自定义图标、添加信息窗体信息等)

vue-aMap高德地图的应用(添加覆盖物点坐标、自定义图标、添加信息窗体信息等) 最近在项目开发中用到了aMap高德地图,简单记录一下,话不多说,直接上代码。 官方文档参考:高德地图aMap官方文档 1、安装amp npm install vue-amap --save 2、main.js里引入amap import AMap from 'vue-amap'//引入高德地图并初始化 Vue.use(AMap) AMap.initAMapApiLoader({ //集合秘钥key key:'9d

qq_41497443的博客 1万+

告别Sourceforge安装器!手把手教你下载MinGW-w64离线包并配置环境变量(Windows 10/11)

本文详细介绍了如何在Windows 10/11系统上通过下载MinGW-w64离线包并配置环境变量,完全绕过Sourceforge安装器的问题。从选择正确的版本、解压到本地目录,到设置系统环境变量和验证编译环境,手把手指导开发者快速搭建稳定的GCC编译环境,解决常见的安装困扰。

weixin_30896825的博客 336

3D 结构光相机工作原理全解 | 从编码投射到三维重建,原理 + 代码 + 工业实战一站式掌握

本文从3D结构光相机的整体架构出发,层层拆解了编码投射、相位计算、相位解包裹、三维重建的核心原理,补充了工业实战所需的公式推导、代码实现、参数调优、设备选型和案例落地,核心总结如下:相位是3D结构光成像的“灵魂”,其精度、稳定性直接决定3D重建的效果,包裹相位与绝对相位的区分的是工业实战的基础;编码投射的核心是“正弦条纹+格雷码条纹”组合,正弦条纹负责高精度相位提取,格雷码条纹辅助解包裹,适配工业场景的精度与稳定性需求;

getusushu的博客 414

vue结合vue-amap调用高德地图行政区划分

1、到高德地图开放平台申请key 2、npm安装vue-amap 3、在main.js中引入并初始化 4、页面引用amap(注意这个ref的属性是和后面地图的视图自适应的时候对应的)el-amap-polygon的属性可参考el-amap-polygon属性 5、页面参数 6、具体方法 注意:created调用drawBounds时如果不加setTimeout的话会出现类似如下的间歇性报错...

qq_35084280的博客 7753

Spark Sql 连接mysql

转载请务必注明原创地址为:http://dongkelun.com/2018/03/21/sparkMysql/ 1、基本概念和用法(摘自spark官方文档中文版) Spark SQL 还有一个能够使用 JDBC 从其他数据库读取数据的数据源。当使用 JDBC 访问其它数据库时,应该首选 JdbcRDD。这是因为结果是以数据框(DataFrame)返回的,且这样 Spark SQL操作轻松或便......

主要分享大数据相关的知识,如Spark、Hudi 1万+

高德地图引入 vue初始化高德地图报错‘AMap‘ is not defined

<template> <div class="web-main"> <div id="container" style="width:1000px; height:900px"></div> </div> </template> <script> import { getActionData } from "@/api/manage.js"; export default { name: "MidMap.

weixin_50885665的博客 3407

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

amap vueamap 与_在vue中使用高德地图vue-amap

1.安装vue-amap我安装指定版本0.5.10的版本npm i --save vue-amap@0.5.102.main.js中的配置// 高德离线地图import VueAMap from 'vue-amap';Vue.use(VueAMap);VueAMap.initAMapApiLoader({// 高德keykey: 'd6eabbd08f89ccfb74278b36ab6342567...

weixin_39560029的博客 864

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

vue-amap(vue 地图)

昨天把vue的地图(高德)搞了下: 步骤: 1.去高德开发者平台申请key; 2.安装vue-amap; 3.使用组件调用地图 1.npm安装vue-amapnpm install vue-amap --save 2.在项目main.js引入vue-amap import AMap from 'vue-amap'; Vue.use(AMap); // 初始化vue-amap AMap.initAMapApiLoader({ // 高德key key: '你的key', /

u010227042的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

vue使用高德地图画电子围栏_高德地图的使用 vue-amap+vue

基本配置1:在vue项目中下载vue-amapnpm install vue-amap --save文档连接2: 在main.js引入高德地图import VueAMap from 'vue-amap';//注册高德Vue.use(VueAMap);VueAMap.initAMapApiLoader({key: '****',//这里是你的高德开发者keyplugin: ['AMap.Autoco...

weixin_39843338的博客 1717

Ant design Of Vue vue-amap 高德地图选点组件

参考链接: Vue(vue-amap) 接入高德地图获取坐标与地址信息 ‘AMapUI‘ is not defined tips: 请参照以上链接配置完成后使用以下组件代码 效果图: 1. 初始样式 2. 地图选点样式 3. 搜索样式 4. 选点后样式 5. 选点后样式 组件代码 <template> <div> <div class="selector-box"> <div> .

love and share 3298

Vue3集成高德地图:快速上手,实现你的业务需求

vue3集成高德地图细节优化总结

爱媳妇儿爱编程 9014
上一篇: [Vue]8. 循环里带有异步的多种写法分析
下一篇: [Vue] 10. 奇奇怪怪的经验(待更)
animalcoder
博客等级 码龄9年 43粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值