vue 学习 - vue引入高德地图 JS_APIJS_API

  • 输入命令cd vueProjectName 进到你项目(我这里是vue_pros)
  • 输入命令npm install 对项目进行初始化依赖
  • 最后执行 npm run dev
cd /projectFloder
vue create projectName
yarn install
yarn serve
yarn add vue-amap

main.js里

import AMap from 'vue-amap';
Vue.use(AMap);

.eslintrc.js

globals: {
    AMap: true,
    AMapUI:true
  }

//全文这样
module.exports = {
  root: true,
  env: {
    node: true
  },
  'extends': [
    'plugin:vue/essential',
    'eslint:recommended'
  ],
  parserOptions: {
    parser: 'babel-eslint'
  },
  rules: {
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
  },
  globals: {
    AMap: true,
    AMapUI:true
  }

}

vue.config.js

configureWebpack: {
    externals: {
      'AMap': 'AMap'
    }
  }

//全文这样
const proxyObj = {}
proxyObj['/'] = {
  target: 'http://localhost:1011',
  changeOrigin: true,
  pathRewrite: {
    '^/': ''
  }
}
//解决AMap报错:AMap undefined报错
module.exports = {
  devServer: {
    host: 'localhost',
    port: 8080,
    proxy: proxyObj
  },
  configureWebpack: {
    externals: {
      'AMap': 'AMap'
    }
  }
  
}

实现一:

<template>
  <div>
    <div id="container" style="width: 100%; height: 800px"></div>
  </div>
</template>
<script>
var map;
export default {
  data() {
    return {
      lnglats: [
        [87.617733, 43.792818],
        [87.627733, 43.794348],
        [87.610733, 43.793531],
        [87.622733, 43.793571],
      ],
    };
  },
  mounted: function () {
    this.init();
  },

  methods: {
    init() {
      map = new AMap.Map("container", {
        center: [87.617733, 43.792818],
        resizeEnable: true,
        zoom: 15,
        mpStyle: "amap://styles/03e3c7f223909df10166bb32758d11d5",
      });
      for (var i = 0; i < this.lnglats.length; i++) {
        var marker = new AMap.Marker({
          position: this.lnglats[i], //不同标记点的经纬度
        });
        map.add(marker);
      }

      AMap.plugin(["AMap.ToolBar", "AMap.Scale", "AMap.MapType"], function () {
        map.addControl(new AMap.ToolBar());
        map.addControl(new AMap.Scale());
        map.addControl(new AMap.MapType());
      });
    },
  },
};
</script>
<style>
</style>

实现二:

<template>
  <div class="amap-page-container">
    <div :style="{ width: '100%', height: '800px' }">
      <el-amap id="amap" :plugin="plugin" class="amap-demo" :center="center">
      </el-amap>
    </div>

    <div class="toolbar">
      <span v-if="loaded"> location: lng = {{ lng }} lat = {{ lat }} </span>
      <span v-else>正在定位</span>
    </div>
    <div v-on:click="req_post()">查询周边</div>
  </div>
</template>
<style>
.amap-demo {
  height: 300px;
}
</style>

<script>


export default {
  data() {
    const self = this;
    return {
      center: [121.59996, 31.197646],
      lng: 0,
      lat: 0,
      loaded: false,
      plugin: [
        {
          enableHighAccuracy: true, //是否使用高精度定位,默认:true
          timeout: 100, //超过10秒后停止定位,默认:无穷大
          maximumAge: 0, //定位结果缓存0毫秒,默认:0
          convert: true, //自动偏移坐标,偏移后的坐标为高德坐标,默认:true
          showButton: true, //显示定位按钮,默认:true
          buttonPosition: "RB", //定位按钮停靠位置,默认:'LB',左下角
          showMarker: true, //定位成功后在定位到的位置显示点标记,默认:true
          showCircle: true, //定位成功后用圆圈表示定位精度范围,默认:true
          panToLocation: true, //定位成功后将定位到的位置作为地图中心点,默认:true
          zoomToAccuracy: true, //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:f
          extensions: "all",
          pName: "Geolocation",
          events: {
            init(o) {
              // o 是高德地图定位插件实例
              o.getCurrentPosition((status, result) => {
                console.log(result);
                if (result && result.position) {
                  self.lng = result.position.lng;
                  self.lat = result.position.lat;
                  self.center = [self.lng, self.lat];
                  self.loaded = true;
                  self.$nextTick();
                }
              });
            },
          },
        },
      ],
    };


  },
  methods:{
     
  }




  
};
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值