vue引入高德地图实现关键字搜索和电子围栏
    		       		warning:
    		            这篇文章距离上次修改已过433天,其中的内容可能已经有所变动。
    		        
        		                
                
<template>
  <div id="app">
    <div id="container"></div>
  </div>
</template>
 
<script>
export default {
  name: 'App',
  mounted() {
    this.initMap();
  },
  methods: {
    initMap() {
      // 高德地图实例化
      let map = new AMap.Map('container', {
        zoom: 11, // 缩放级别
        center: [116.397428, 39.90923] // 中心点坐标
      });
 
      // 构造搜索类
      let placeSearch = new AMap.PlaceSearch({
        map: map,
        pageSize: 5,
        pageIndex: 1
      });
 
      // 关键词输入建议
      AMap.event.addListener(placeSearch, 'markersset', (e) => {
        let keywords = e.poiList.map((poi) => {
          return poi.name;
        });
        // 假设存在autoCompletePlugin插件
        map.autoCompletePlugin.setCity('北京');
        map.autoCompletePlugin.search(keywords);
      });
 
      // 创建一个圆形围栏
      let circle = new AMap.Circle({
        map: map,
        center: map.getCenter(),
        radius: 1000,
        strokeColor: 'blue',
        strokeOpacity: 0.5,
        strokeWeight: 1,
        fillColor: 'blue',
        fillOpacity: 0.1
      });
 
      // 地图点击事件,更新电子围栏中心点
      map.on('click', (e) => {
        circle.setCenter(e.lnglat);
      });
 
      // 使用地理编码进行逆地理编码
      AMap.event.addListener(map, 'click', (e) => {
        let geocoder = new AMap.Geocoder({
          radius: 1000,
          extensions: 'all'
        });
        geocoder.getAddress(e.lnglat, (status, result) => {
          if (status === 'complete' && result.info === 'OK') {
            // 输出地址信息
            console.log(result.regeocode.formattedAddress);
          }
        });
      });
    }
  }
};
</script>
 
<style>
#container {
  width: 100%;
  height: 800px;
}
</style>这段代码展示了如何在Vue应用中初始化高德地图,实现关键词搜索提示,创建电子围栏,并在地图上点击时更新围栏位置和获取点击位置的详细地址信息。
评论已关闭