vue 高德地图api爬坑之路(三)Autocomplete 和 PlaceSearch

本文记录了在Vue项目中使用高德地图API进行Autocomplete和PlaceSearch功能实现的过程,包括添加页面控件、初始化插件的详细步骤,并展示了最终效果。虽然样式简单,但实现了功能需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添加页面控件

	<div class="search-div" >
      <el-input id="tipInput" v-model="inputSearchVal" placeholder="请输入搜索名称">
        <el-button slot="append" icon="el-icon-search" @click="searchKeyword"> 
          搜索
        </el-button>
      </el-input>
    </div>

初始化插件

编辑方法

	/** 初始化搜索工具 */
    mapSearchInit(){
   
   
      let that = this;
      // 绑定自动提示
      AMap.plugin(['AMap.Autocomplete','AMap.PlaceSearch'], function(){
   
   
        var autoOptions = {
   
   
          input: "tipInput",	//值为界面上input空间id
          city: '北京',
        }
        var autoCompleteComponent= new AMap.Autocomplete(autoOptions);
        // 注册监听Autocomplete选中项
        AMap.event.addListener(autoCompleteComponent,"select",function(data){
   
   
          console.log(data);
          if ( data.poi.location != undefined){
   
   
            //定位到中心点
            console.log("定位中心点")
            that.map.setCenter(data.poi.location);

            //TODO 获取数据,对数据进行操作如:添加marker等
            
          }
        
        })
        that.autoCompleteComponent = autoCompleteComponent;
        // 注册placeSearch组件
        that.placeSearchComponent = new AMap.PlaceSearch({
   
   
          // city 指定搜索所在城市,支持传入格式有:城市名、citycode和adcode
          city: '北京'
        })
      });
    },
    /** 关键词搜索 */
    searchKeyword(
### 高德地图 API 功能特性及使用说明 高德地图 API 提供了丰富的功能,适用于多种应用场景。以下是高德地图 API 的主要功能特性及其使用说明: #### 1. 地图初始化与基础渲染 通过高德地图 API,可以快速初始化地图,并设置地图的基本属性,例如中心点、缩放级别等[^2]。 代码示例如下: ```javascript var map = new AMap.Map('container', { zoom: 10, // 设置地图显示的缩放级别 center: [116.397428, 39.90923], // 设置地图中心点坐标 viewMode: '2D' // 使用2D视图模式 }); ``` #### 2. 多边形绘制与编辑 高德地图支持多边形绘制功能,用户可以通过鼠标在地图上绘制多边形区域,并获取多边形的相关数据[^1]。 实现代码如下: ```javascript var polygonTool = new AMap.PolygonEditor(map); polygonTool.open(); // 打开多边形绘制工具 map.on('draw:end', function(e) { console.log(e.obj); // 获取绘制完成的多边形对象 }); ``` #### 3. 2D 3D 切换 高德地图 API 支持在 2D 3D 视图之间切换[^2]。 代码示例: ```javascript map.setPitch(45); // 设置俯仰角为45度(3D效果) map.setRotation(30); // 设置地图旋转角度 ``` #### 4. 缩放控件与自定义点标 API 提供了默认的缩放控件,并允许开发者自定义点标样式行为。 示例代码: ```javascript var marker = new AMap.Marker({ position: [116.397428, 39.90923], // 点标位置 icon: 'https://webapi.amap.com/images/marker.png', // 自定义图标 title: '北京' // 点标提示信息 }); marker.setMap(map); // 将点标添加到地图 ``` #### 5. 地理编码与逆地理编码 通过高德地图 API,可以实现地址与经纬度之间的相互转换[^2]。 示例代码: ```javascript // 地址转经纬度 var geocoder = new AMap.Geocoder(); geocoder.getLocation('北京市朝阳区望京SOHO', function(status, result) { if (status === 'complete') { console.log(result.geocodes[0].location); // 输出经纬度 } }); // 经纬度转地址 geocoder.getAddress([116.397428, 39.90923], function(status, result) { if (status === 'complete') { console.log(result.regeocode.formattedAddress); // 输出地址 } }); ``` #### 6. 圆形绘制与范围判断 API 支持绘制圆形区域,并提供判断某点是否在圆内的功能。 示例代码: ```javascript var circle = new AMap.Circle({ center: [116.397428, 39.90923], // 圆心 radius: 1000, // 半径,单位米 strokeColor: '#FF33FF', strokeWeight: 6, fillColor: '#1791fc' }); circle.setMap(map); function isPointInCircle(point) { var distance = AMap.GeometryUtil.distance(circle.getCenter(), point); return distance <= circle.getRadius(); } ``` #### 7. 关键字搜索 高德地图 API 提供了强大的关键字搜索功能,可以搜索 POI(兴趣点)[^2]。 示例代码: ```javascript var placeSearch = new AMap.PlaceSearch({ city: '北京', // 搜索城市 pageSize: 10, // 每页返回数量 pageIndex: 1 // 当前页码 }); placeSearch.search('餐馆', function(status, result) { if (status === 'complete') { console.log(result.poiList.pois); // 输出搜索结果 } }); ``` #### 8. 天气信息获取 高德地图 API 还支持获取天气信息,包括实时天气、预报天气等[^3]。 示例代码: ```javascript AMap.plugin('AMap.Weather', function() { var weather = new AMap.Weather(); weather.getLive('北京', function(err, data) { if (!err) { console.log(data); // 输出实时天气数据 } }); }); ``` #### 9. 静态地图生成 高德地图 API 提供静态地图服务,可用于生成带标记的地图图片[^3]。 示例 URL: ``` https://restapi.amap.com/v3/staticmap?location=116.397428,39.90923&zoom=10&size=800*400&markers=mid,,A:116.397428|39.90923&key=您的Key ``` --- ### 注意事项 - 免费版高德地图 API 每日调用限额为 5000 次。 - 使用 API 前需注册并获取密钥。 ---
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值