【高德地图】地址关键词模糊检索,重写原生效果

本文介绍了如何使用高德地图JSAPI进行地址检索,包括返回文字结果和使用自定义面板。通过监听输入框事件,调用AMap.Autocomplete进行搜索,并在回调中处理数据。检索结果通过Pinia在不同组件间同步,并优化了用户交互体验,如高亮选中项。

目前高德地图地址检索的模式有两种,一种仅显示文字结果,一种返回面板,如下图

如果你不想使用JS API的结果面板,panel可以缺省或者赋值false,然后可以在search()的回调中处理自己的逻辑。

placeSearch.search('北京大学', function (status, result) {
   // 查询成功时,result即对应匹配的POI信息
});

也可以根据项目的风格,重新自定义

首先在template写好输入框,请注意需要给该元素标识唯一id(tipinput),监听回车事件,调用以下api。若需要结合系统的数据,请注意需处理经纬度问题,因为高德是火星坐标系,不一致的话会出现定位不准确的问题。

AMap.plugin(['AMap.AutoComplete'], function () {
        const autoComplete = new AMap.Autocomplete({
          input: 'tipinput',
        });
        autoComplete.search(keyword, (status, result) => {
          if (status === 'complete' && result.info === 'OK') {
            result.tips.forEac
高德地图中,使用`placeSearch`关键词检索后给`Marker`添加点击事件可以按以下步骤实现: 1. 初始化地图:创建一个地图实例,设置地图的基本属性,如容器、视图模式、缩放级别、中心点等。 2. 加载地点搜索插件:使用`AMap.plugin`加载`AMap.PlaceSearch`插件。 3. 构造地点查询类:在插件加载完成的回调函数中,创建`AMap.PlaceSearch`实例,并传入相关参数,如每页显示结果条数、页码、地图实例、结果列表容器等。 4. 注册点击事件:使用`placeSearch`实例的`on`方法为`markerClick`事件注册回调函数,当点击`Marker`时,回调函数将被触发。 以下是示例代码: ```javascript // 设置地图容器id const BasicMap = new AMap.Map('container', { viewMode: '3D', // 是否为3D地图模式 zoom: 12, // 初始化地图级别 center: [105.602725, 37.076636], // 初始化地图中心点位置 resizeEnable: true, }); AMap.plugin(['AMap.PlaceSearch'], function () { // 构造地点查询类 const placeSearch = new AMap.PlaceSearch({ pageSize: 10, // 单页显示结果条数 pageIndex: 1, // 页码 map: BasicMap, // 展现结果的地图实例 // citylimit: false, // 是否强制限制在设置的城市内搜索 panel: 'panel', // 结果列表将在此容器中进行展示。 autoFitView: true, // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围 }); // 为marker注册点击事件 placeSearch.on('markerClick', function (e) { // 根据点击marker进行下一步操作 console.log('Marker被点击了', e); }); // 执行关键词检索 placeSearch.search('关键词', function (status, result) { if (status === 'complete' && result.info === 'OK') { // 检索成功 } }); }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值