美文网首页
VUE加载高德地图,实现按坐标系定位

VUE加载高德地图,实现按坐标系定位

作者: Jinwei_ | 来源:发表于2021-06-07 19:29 被阅读0次

一、新增加载地图页面

1、在项目中新建vue页面,设置div的id="container"

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

2、添加组件

<div class="input">
            <el-row :gutter="5">
                <el-col>
                    <el-input v-model="gdCoordinate"placeholder="GEO坐标">></el-input>
                </el-col>
                <el-col span="1">
                    <li-button type="primary" @click="getCoordinate()">定位</el-button>
                </el-col>
            </el-row>
        </div>

二、异步创建script标签amap.js

1、新建js文件

export default function MapLoader () {
    return new Promise((resolve, reject) => {
        if (window.AMap) {
            resolve(window.AMap)
        } else {
            var s = document.createElement('script');
            s.type = 'text/javascript';
            s.async = true;
            s.src = 'https://webapi.amap.com/maps?v=1.4.8&key=注册高德开发者账户创建&callback=initAMap';
            s.onerror = reject;
            document.body.appendChild(s);
        }
        window.initAMap = ()=> {
            resolve(window.AMap)
        }
    })
}

三、地图页引入script标签,添加标记方法

1、在vue页面引入script标签

import MapLoader from '@/js标签目录/amap'

2、添加标记方法

getCoordinate() {
                //分割字符串为数组对象
                var coordinate = this.gdCoordinate.split(',');
                var lng = coordinate[0];
                var lat = coordinate[1];
                console.log(lng,lat)
                var marker = new AMap.Marker({
                    position: new AMap.LngLat(lng,lat), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
                    title: "位置标题",
                    zoomToAccuracy: true,
                });
                // 将创建的点标记添加到已有的地图实例:
                map.add(marker);

                //setFitView自适应显示标记
                var newCenter = map.setFitView();
                newCenter.getCenter();
            },

四、实现效果

1、加载页面

image.png

2、定位效果

image.png

五、常见问题

1、使用window.onload加载页面,不刷新页面加载不出来
因vue文件不是首页,window.onload只有加载完成整个页面时触发,页面加载完成后再切换到地图vue页面,此时不会触发window.onload
2、异步加载,首次进入地图页面不加载地图,切换vue才加载
需在script标签src值中添加callback属性

相关文章

  • VUE加载高德地图,实现按坐标系定位

    一、新增加载地图页面 1、在项目中新建vue页面,设置div的id="container" 2、添加组件 二、异步...

  • Arcgis runtime for Android 100.5

    加载高德地图 说明一下,什么时候加载高德地图,什么时候加载天地图 使用原生定位或者使用arcgis提供的Locat...

  • 数据爬取

    (一)地理偏移 高德地图:GCJ-02 坐标系(火星坐标系)百度地图:BD-09坐标系(百度坐标系)不同地图定位偏...

  • 【VUE】常用插件

    图片懒加载 vue-lazyloadecharts图标 vue-echarts高德地图 vue-amap日期...

  • Android跳转第三方地图进行导航

    项目要实现跳入第三方APP实现导航功能,在APP内已经嵌入高德地图SDK,可以获取定位的经度。 坐标系的转换 要跳...

  • Arcgis runtime for Android 100.5

    加载天地图说明一下,什么时候加载高德地图,什么时候加载天地图 使用原生定位或者使用arcgis提供的Locatio...

  • vue-高德地图实现定位

    在仿马蜂窝的小项目中有个模块需要定位用户的 当前位置,所以我打算使用高德地图的vue-amap插件实现功能。 首页...

  • 跳转第三方地图导航

    github地址百度地图文档高德地图文档 一.说明 在使用地图的时候,需要用到定位系统,有定位就要有坐标系。 但是...

  • js高德地图中地址查询定位

    高德地图自带的,根据用户输入的地址,进行模糊搜索,用户进行选择定位用vue以及element-ui实现的, 页面部...

  • 各坐标系简介与转换

    背景:从GPS和北斗卫星定位得到的定位数据采用的都是WGS84坐标系,即地球坐标系,但是国内不管是高德地图、百度地...

网友评论

      本文标题:VUE加载高德地图,实现按坐标系定位

      本文链接:https://www.haomeiwen.com/subject/zgqreltx.html