Vue(3). 如何将高德地图引入的vue中

1.首先需要进入高德地图平台 注册账号获取KEY

2.在vue终端里输入

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

3.另一种方式是传统的<script>,但不建议,需要的可以看官方了。

4. 在需要的组件中创建一个容器,确定高宽:

<divid="container"style="height: 800px;width: 800px;"></div>

导入

importAMapLoaderfrom'@amap/amap-jsapi-loader';

并在setup()/mounted()中加载:

import AMapLoader from '@amap/amap-jsapi-loader';
import axios from 'axios';
import qs from 'qs';
// import router from '@/router';
import {
    useRouter,
    useRoute
} from "vue-router";
import { ref } from 'vue'
// import { times } from 'lodash';
const router = useRouter();
const route = useRoute();
const active = ref([0]);
const tabDatas = ref([])
const regions = ref([])
const regionss = ref([])
const lng_lst = ref([])
const minimg = ref('')

axios({
    method: "post", //请求方式
    url: "域名", //url
    data: qs.stringify({
        // 参数
        scienceid: route.query.id,
    }),
}).then((res) => {
    console.log(res.data); //成功回调
    tabDatas.value = res.data.data
    minimg.value = res.data.data;
    console.log(minimg.value);
})
const Togget = (id) => {
    console.log(minimg.value[id].minimg);
    console.log(id);
    axios({
        method: "post", //请求方式
        url: "域名", //url
        data: qs.stringify({
            // 参数
            scienceid: route.query.id,
            tabid: tabDatas.value[id].id,
        }),
    }).then((res) => {
        console.log(res.data); //成功回调
        lng_lst.value = res.data.data
        console.log(lng_lst.value[0].lng);

        AMapLoader.load({
            "key": "cb43e9e4ae1d541c13c5565173e5563d",                                          // 申请好的Web端开发者Key,首次调用 load 时必填
            "version": "1.4.15",                                // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
            "plugins": [],                                      // 需要使用的的插件列表,如比例尺'AMap.Scale'等
            "AMapUI": {                                         // 是否加载 AMapUI,缺省不加载
                "version": '1.1',                               // AMapUI 缺省 1.1
                "plugins": [],                                   // 需要加载的 AMapUI ui插件
            },
            "Loca": {                                            // 是否加载 Loca, 缺省不加载
                "version": '1.3.2'                              // Loca 版本,缺省 1.3.2
            },
        }).then((AMap) => {
            var map = new AMap.Map('container', {
                resizeEnable: true,
                // center: [res.data.data[i].lng, res.data.data[i].lat],
                center: [lng_lst.value[0].lng, lng_lst.value[0].lat],                 //中心点坐标
                zoom: 12
            });
            let lngg = []
            for (let i = 0; i < res.data.data.length; i++) {
                var marker = new AMap.Marker({
                    position: new AMap.LngLat(Number(lng_lst.value[i].lng), Number(lng_lst.value[i].lat)), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
                    // center: [lng_lst.value[i].lng, lng_lst.value[i].lat],                 //中心点坐标
                    icon: minimg.value[id].minimg,
                    anchor: 'bottom-center',
                    offset: new AMap.Pixel(0, 0),
                    imageSize: new AMap.Size(1, 1)   // 根据所设置的大小拉伸或压缩图片
                });
                // marker.setMap(map);
                // 设置鼠标划过点标记显示的文字提示
                // marker.setTitle('我是marker的title');

                // 设置label标签
                // label默认蓝框白底左上角显示,样式className为:amap-marker-label
                marker.setLabel({
                    direction: 'right',
                    offset: new AMap.Pixel(-55, -40),  //设置文本标注偏移量
                    content: `<div class='info'>
                        <div>
                            <p style="width:100%;display: flex;justify-content: center;"><b>`+ res.data.data[i].name + `</b></p>
                            
                        </div>
                    </div>`, //设置文本标注内容
                    // <p style="width:100%;display: flex;justify-content: center;"><b>`+ res.data.tab[i].create_time + `</b></p>
                });
                lngg.push(marker);
            }
            map.add(lngg)
        }).catch(e => {
            console.log(e);
        })
    })
}

const upPage = () => {
    router.push({
        name: 'HomeView'
    })
}

把key值更改为自己在创建地图时的key值

详细教程查看官方文档(都是官方的那一套)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以使用 Vue.js高德地图 JavaScript API 来显示两个地点。首先,需要在 HTML 文件引入高德地图JavaScript API,然后在 Vue 组件编写代码来实现地图显示。 以下是一个简单的示例: 在 HTML 文件引入高德地图JavaScript API: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Vue.js 高德地图示例</title> <!-- 引入高德地图JavaScript API --> <script src="https://webapi.amap.com/maps?v=1.4.15&key=your_amap_api_key"></script> </head> <body> <div id="app"> <div id="map"></div> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="app.js"></script> </body> </html> ``` 在 app.js 文件编写 Vue 组件的代码: ```javascript new Vue({ el: '#app', mounted() { // 在组件挂载后初始化地图 this.initMap(); }, methods: { initMap() { // 创建地图实例 const map = new AMap.Map('map', { zoom: 10, // 设置地图缩放级别 center: [lng, lat] // 设置地图心点坐标 }); // 添加标记点 const marker1 = new AMap.Marker({ position: [lng1, lat1], // 设置标记点坐标 map: map }); const marker2 = new AMap.Marker({ position: [lng2, lat2], // 设置标记点坐标 map: map }); } } }); ``` 在上面的代码,您需要将 `your_amap_api_key` 替换为您自己的高德地图 API 密钥。`lng` 和 `lat` 分别表示地点的经度和纬度,您可以根据实际需求替换它们。 请注意,上述代码只是一个简单的示例,您可能还需要进行其他设置和样式调整来满足您的需求。详细的文档和示例可以在高德地图 JavaScript API 官方网站上找到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

bug丶小狼人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值