vue中引用高德地图问题

问题描述

项目中需要引用高德地图,原本用高德地图的拖拽方法进行定位的方式已经成功,但是现在的需求改成输入关键字进行搜索对应的地图信息,自己定义了一个方法,在该方法中引用高德地图的方法报如下错误:

clipboard.png

求教原因!

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
<template lang="html">
<div class="map-div" >

 <el-row :gutter="20" >
   <el-col :span="4" style="text-align:right;line-height:40px;">
     地址:
   </el-col>
   <el-col :span="20">
     <el-input v-model="address" size="small"></el-input>
   </el-col>
 </el-row>
 <el-row :gutter="20" style="margin:10px 0">
   <el-col :span="4" style="text-align:right;line-height:40px;">
     经度:
   </el-col>
   <el-col :span="8">
     <el-input v-model="longitude" size="small"></el-input>
   </el-col>
   <el-col :span="4" style="text-align:right;line-height:40px;">
     纬度:
   </el-col>
   <el-col :span="8">
     <el-input v-model="latitude" size="small"></el-input>
   </el-col>
 </el-row>
 <el-row :gutter="20" >
   <el-button type="primary" class="fr"  v-on:click="submit">确定</el-button>
 </el-row>
 <el-row  style="position:relative">
   <div  id="container" style="width:100%;height:400px;position:relative"> </div>
   <el-input ref="tipinput" placeholder="请输入地址信息" v-model="searchAddr" class="input-with-select searchAddr">
     <el-button slot="append" icon="el-icon-search" @click="positionAddr"></el-button>
   </el-input>
 </el-row>

</div>
</template>
<script>
import AMap from 'AMap'
// import AMapUI from 'AMapUI'
export default {
data() {

return {
  // myWidth: (window.screen.width) + 'px',
  // myHeight: (window.screen.height) + 'px'
  address: '',
  longitude: '',
  latitude: '',
  searchAddr: ''
}

},
created() {
},
mounted() {

this.loadmap() // 加载地图和相关组件

},
methods: {

loadmap() {
  const self = this
  AMapUI.loadUI(['misc/PositionPicker'], function(PositionPicker) {
    var map = new AMap.Map('container', {
      zoom: 16,
      scrollWheel: true,
      resizeEnable: true
    })
    var positionPicker = new PositionPicker({
      mode: 'dragMarker',
      map: map,
      iconStyle: { // 自定义外观
        url: '//webapi.amap.com/ui/1.0/assets/position-picker2.png',
        ancher: [24, 40],
        size: [48, 48]
      }
    })
    positionPicker.on('success', function(positionResult) {
      // console.log(positionResult)
      self.longitude = positionResult.position.lng
      self.latitude = positionResult.position.lat
      self.address = positionResult.address
    })
    positionPicker.on('fail', function(positionResult) {
      self.longitude = ''
      self.latitude = ''
    })
    positionPicker.start()
  })
},
submit() {
  var params = {
    lng: this.longitude,
    lat: this.latitude,
    address: this.address
  }
  this.$emit('submit', params)
},
positionAddr() {
  let self = this
  var map = new AMap.Map("container", {
    resizeEnable: true
  });
  AMap.service(["AMap.PlaceSearch"], function() {
      var placeSearch = new AMap.PlaceSearch({ //构造地点查询类
          pageSize: 5,
          pageIndex: 1,
          city: "010", //城市
          map: map,
          panel: "panel"
      });
      //关键字查询
      placeSearch.search(self.searchAddr);
  });
}

}
}
</script>

阅读 3.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题