vue3高德地图点击标点

这篇具有很好参考价值的文章主要介绍了vue3高德地图点击标点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue3高德地图点击标点

 

1.首先如果没有key的话需要在高德开发平台申请key。
2.安装

npm i @amap/amap-jsapi-loader --save
cnpm i @amap/amap-jsapi-loader --save

3.容器:

<template>
  <div>
    <div class="info">
      <h4>获取地图级别与中心点坐标</h4>
      <p>当前级别:<span id="map-zoom">11</span></p>
      <p>当前中心点:<span id="map-center">121.498586,31.239637</span></p>
    </div>
    <div class="input-card">
      <h4>鼠标左键获取经纬度:</h4>
      <div class="input-item">
        <input type="text" readonly="true" id="lnglat" />
      </div>
    </div>

    <div id="map"></div>
  </div>
</template> 

4.容器样式:

#map {
  margin: 50px auto;
  width: 800px;
  height: 500px;
}

5.在组件中引入所需的 API。

import AMapLoader from '@amap/amap-jsapi-loader'; // 使用加载器加载JSAPI,可以避免异步加载、重复加载等常见错误加载错误
import { shallowRef } from '@vue/reactivity';
import { onMounted } from '@vue/runtime-core';

6.创建一个 Marker 实例。

let markerPoint = new AMap.Marker({
    position: [121.939253, 29.905078], // 基点坐标
    offset: new AMap.Pixel(-12, -32), // //标记点相对偏移量,可以固定其地址,不随着地图缩放而偏移
    draggable: false, //点标记对象是否可拖拽移动
    defaultCursor: 'pointer'
 });
 map.add(markerPoint); // 地图添加标记

7.定义样式:

// 方法一
var startIcon = new AMap.Icon({
	size: new AMap.Size(25, 34),// 图标尺寸
    image: '//a.amap.com/jsapi_demos/static/demo-center/icons/dir-marker.png',// 图标的取图地址
    imageSize: new AMap.Size(135, 40),// 图标所用图片大小
    imageOffset: new AMap.Pixel(-9, -3)// 图标取图偏移量
});
// 将 icon 传入 marker
var startMarker = new AMap.Marker({
	position: new AMap.LngLat(116.35,39.89),
    icon: startIcon,
    offset: new AMap.Pixel(-13, -30)
});
startMarker.setMap(map);//设置地图标记

// 方法二
let marker = new AMap.Marker({
	// icon: "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png",
    position: [116.406315, 39.908775],
    offset: new AMap.Pixel(-13, -30),//标记点相对偏移量,可以固定其地址,不随着地图缩放而偏移
    icon: new AMap.Icon({
    	size: new AMap.Size(40, 50),  //图标的大小
        image: "https://webapi.amap.com/theme/v1.3/images/newpc/way_btn2.png",
        imageOffset: new AMap.Pixel(0, -60)
	})
});
map.add(marker);

 显示地图层级与中心点信息:

function logMapinfo(){
	let zoom = map.getZoom(); //获取当前地图级别
	let center = map.getCenter(); //获取当前地图中心位置
    document.querySelector("#map-zoom").innerText = zoom;
    document.querySelector("#map-center").innerText = center.toString();
};
//绑定地图移动与缩放事件
map.on('moveend', logMapinfo);
map.on('zoomend', logMapinfo);

获取经纬度坐标:
 

//为地图注册click事件获取鼠标点击出的经纬度坐标
map.on('click', function(e) {
	document.getElementById("lnglat").value = e.lnglat.getLng() + ',' + e.lnglat.getLat()
});

整体代码:
 文章来源地址https://www.toymoban.com/news/detail-509918.html

<template>
  <div>
    <div class="info">
      <h4>获取地图级别与中心点坐标</h4>
      <p>当前级别:<span id="map-zoom">11</span></p>
      <p>当前中心点:<span id="map-center">121.498586,31.239637</span></p>
    </div>
    <div class="input-card">
      <h4>鼠标左键获取经纬度:</h4>
      <div class="input-item">
        <input type="text" readonly="true" id="lnglat" />
      </div>
    </div>

    <div id="map"></div>
  </div>
</template> 

<script setup>
import AMapLoader from '@amap/amap-jsapi-loader'; // 使用加载器加载JSAPI,可以避免异步加载、重复加载等常见错误加载错误
import { shallowRef } from '@vue/reactivity';
import { onMounted } from '@vue/runtime-core';

const map = shallowRef(null); // 初始化地图
function initMap() {
  AMapLoader.load({
    key: 'e6cf30fd79d7b556ee881ddd0281e8d0', // 申请好的Web端开发者Key,首次调用 load 时必填
    version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
    plugins: [
      'AMap.Scale', //工具条,控制地图的缩放、平移等
      'AMap.ToolBar', //比例尺,显示当前地图中心的比例尺
      'AMap.Geolocation', //定位,提供了获取用户当前准确位置、所在城市的方法
      'AMap.HawkEye', //鹰眼,显示缩略图
    ], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
  })
    .then((AMap) => {
      let map = new AMap.Map('map', {
        //设置地图容器id
        zoom: 15, //初始化地图层级
        viewMode: '3D', //是否为3D地图模式

        center: [113.98331263696, 35.288301920621], //初始化地图中心点位置
        dragEnable: true, //禁止鼠标拖拽
        scrollWheel: true, //鼠标滚轮放大缩小
        doubleClickZoom: true, //双击放大缩小
        keyboardEnable: true, //键盘控制放大缩小移动旋转
      });
      map.setDefaultCursor('pointer'); //使用CSS默认样式定义地图上的鼠标样式(default/pointer/move/crosshair)
      map.addControl(new AMap.Scale()); //异步同时加载多个插件
      map.addControl(new AMap.ToolBar());
      map.addControl(new AMap.Geolocation());
      let HawkEye = new AMap.HawkEye({
        position: 'LT', //控件停靠位置(LT/RT/LB/RB)
      });
      map.addControl(HawkEye);
      map.add(
        new AMap.Marker({
          position: map.getCenter(),
        })
      );
      // map.add(marker); // 地图添加标记
      AMapLoader.load({
        //可多次调用load
        plugins: ['AMap.MapType'],
      })
        .then((AMap) => {
          map.addControl(new AMap.MapType());
        })
        .catch((e) => {
          console.error(e);
        });
      // 显示地图层级与中心点信息
      function logMapinfo() {
        let zoom = map.getZoom(); //获取当前地图级别
        let center = map.getCenter(); //获取当前地图中心位置
      }
      //绑定地图移动与缩放事件
      map.on('moveend', logMapinfo);
      map.on('zoomend', logMapinfo);
      //为地图注册click事件获取鼠标点击出的经纬度坐标
      map.on('click', function (e) {
        document.getElementById('lnglat').value = e.lnglat.getLng() + ',' + e.lnglat.getLat();
      });
      let infoWindow = new AMap.InfoWindow({
        //创建信息窗体
        isCustom: false, //使用自定义窗体
        anchor: 'top-right', //信息窗体的三角所在位置
        content: `<h4>信息窗体</h4>`, //信息窗体的内容可以是任意html片段
        offset: new AMap.Pixel(16, -45),
      });
      infoWindow.open(map, [121.939253, 29.905078]); //填写想要窗体信息指示的坐标
    })
    .catch((e) => {
      console.log(e);
    });
}

// 调用地图初始化函数:onMounted 函数会在 DOM 初始化完成后调用,建议在 mounted 函数中调用地图初始化方法
onMounted(() => {
  initMap();
});
</script>

<style>
#map {
  margin: 50px auto;
  width: 100%;
  height: 500px;
}
</style>

到了这里,关于vue3高德地图点击标点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 高德API JS 高德地图获取多个坐标点的中心点

    我需要: 在地图上展示多个地点 地图缩放到合适的大小,要求刚好能显示全部点位 边缘留有一部分间隔。 做成如图所示这样。 经过一下午的研究,弄出来了。 需要以下这些 AMap 的类库: AMap.Bounds() 区域 AMap.LngLat() 点坐标(基础点位) AMap.setBounds() 设置地图区域,这会自动

    2024年02月07日
    浏览(35)
  • 在vue3项目中使用新版高德地图

    高德开发平台 : 高德开放平台 | 高德地图API (amap.com) 1. 首先你要注册好账号登录 2. 获取key和密钥    自2021年12月02日升级,升级之后所申请的 key 必须配备安全密钥  jscode  一起使用         按 NPM 方式安装使用 Loader :         在页面中通过NPM 方式安装的使用 :    

    2023年04月19日
    浏览(55)
  • vue对高德地图的简单使用:点击标记并获取经纬度和详细地址

    目录 第一步:先按部就班,进入高德开放平台,跟着步骤注册账号,创建应用 第二步:用npm下载包,初始化地图 第三步:实现点击地图添加标记 第四步:点击获取详细地址 第五步:搜索获取相关地区提示 第六步:全部代码(把密钥和key替换可直接运行)   高德地图有AP

    2024年02月06日
    浏览(41)
  • 【Uniapp】高德地图的接入、定位、自定义标点与信息窗体使用

    因为公司的业务需求,需要实现一个接入高德地图的数据大屏,并根据坐标实现地图标点渲染,自定义信息窗体,点击定位等功能。查阅高德地图官方文档时发现使用的是原生 JavaScript ,且网上 uniapp 接入使用的教程较少,我自己摸索之后解决了不少问题,欢迎大佬补充纠正

    2024年02月11日
    浏览(31)
  • Vue3使用高德地图、搜索、地图选点、以及省市区三级联动

    1、准备工作 需要在 高德开发平台 申请自己的 key 和 密钥 这里的 Key 名称大家可以随意填写 申请完之后我们得到 key 和 密钥 vue中使用需要安装**@amap/amap-jsapi-loader --save** 官方文档 2、代码实现 首先我们需要三个文件,一个 index.vue 一个用来存放省市区的 index.js 文件 一个 ma

    2024年02月05日
    浏览(59)
  • 141:vue+leaflet 利用高德逆地理编码,点击地图标记marker,popup地址信息

    第141个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中利用高德逆地理编码,点击地图标记marker,popup地址信息 。主要利用高德地图的api将坐标转化为地址,然后在点击的位置,弹出弹窗,在里面显示出地址信息。 直接复制下面的 vue+leaflet源代码,操作2分钟即

    2024年01月24日
    浏览(34)
  • Vue3+Vite连接高德地图JS API——地图显示、输入搜索

    1、进入高德地图API官网(https://lbs.amap.com/): 2、注册登录。 3、进入控制台。 4、点击“应用管理”,点击“我的应用”,创建新应用。 5、添加Key,服务平台选择“Web端(JS API)”,白名单不要填写,勾选阅读并同意。 点击提交后,就能看到Key已经生成,记住这里的Key和安

    2024年01月17日
    浏览(34)
  • 树莓派通过天线+gps获取经纬度并调用高德地图api在地图上标点

    完整项目为《 基于机器视觉的行人和路面缺陷检测及其边缘设备部署 》 完整功能视频演示地址:本科最后的课设:“车载系统的辅助系统——基于机器视觉的行人和路面缺陷检测”完结撒花*罒▽罒*_哔哩哔哩_bilibili 该博客介绍的功能为: 1:树莓派通过gps+天线读取经纬度坐

    2024年02月14日
    浏览(43)
  • 前端系列19集-vue3引入高德地图,响应式,自适应

    npm i @amap/amap-jsapi-loader --save 要在Vue 3中引入高德地图,你可以按照以下步骤进行操作: 在项目目录中使用npm或yarn安装高德地图的JavaScript API库。你可以使用以下命令之一: npm install @amap/amap-jsapi-loader yarn add @amap/amap-jsapi-loader 在Vue组件中引入并使用高德地图。 在你的Vue组件中

    2024年02月07日
    浏览(32)
  • VUE3+TS+element UI +高德地图实现轨迹回放带进度条

    记录一下,由于项目需要做车辆的历史轨迹回放,查了很多资料,在高德地图里有这几种解决方案。 所用技术:vue3 + TS +element UI plus +高德地图  这是相关的Demo借鉴 高德地图的轨迹回放demo 轨迹巡航器控制 高德地图Amap UI 下面是效果图: 1,这是高德地图提供的轨迹回放demo

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包