【高德地图POI踩坑】AMap.PlaceSearch无法使用

先说结论:版本是1.4.15,如果你是根据高德地图开发文档使用的

// JSAPI 2.0 输入提示插件名称由 AMap.Autocomplete 变更为 AMap.AutoComplete 啦!
AMap.plugin('AMap.AutoComplete', function(){
  var autoOptions = {
    //city 限定城市,默认全国
    city: '全国'
  };
  // 实例化AutoComplete
  var autoComplete= new AMap.AutoComplete(autoOptions);
  // 根据关键字进行搜索
  autoComplete.search(keyword, function(status, result) {
    // 搜索成功时,result即是对应的匹配数据
    console.log(result);
  })
})

或者使用的

var placeSearch = new AMap.PlaceSearch({
  // city 指定搜索所在城市,支持传入格式有:城市名、citycode和adcode
  city: '010'
});

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

然后报错的,可以试试改成

 AMap.service('AMap.PlaceSearch', function () {
      var placeSearch = new AMap.PlaceSearch({
        // city 指定搜索所在城市,支持传入格式有:城市名、citycode和adcode
        city: '010',
      });

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

坑爹的经过:

最近项目上有一个需求,需要搜索地名然后在地图上打点,使用了高德地图,但是这个POI搜索一直用不了,根本没有反应,我猜想了很多原因,甚至我把我的代码复制下来放到高德地图示例上运行居然都能成功,给我整不会了,于是开始各种姿势百度,最后让我找到一个博主,原文是这么写的:

调用高德地图搜索附近位置时,常常碰到这样的问题:amap.placesearch is not a constructor

原因是: new AMap.PlaceSearch  时外层没有引入红色的方法

 AMap.service('AMap.PlaceSearch',function(){
});

 我定睛一看,居然是AMap.service!然鹅高德地图的开发文档原文为AMap.plugin,好家伙我一时间不知道是我版本问题还是这文档问题,我赶紧去试了一下,成功了!我裂开了

原文地址:调用高德地图的搜索功能_Mr小林的博客-CSDN博客

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
AMap.PlaceSearch高德地图 JavaScript API V3 中的一个类,用于搜索指定关键字周边的POI信息。使用方法如下: 1. 引入高德地图API: ```html <script src="https://webapi.amap.com/maps?v=1.4.15&key=your-key"></script> ``` 其中,key为你申请的高德地图API的key。 2. 创建PlaceSearch对象: ```javascript var placeSearch = new AMap.PlaceSearch(options); ``` 其中,options为可选参数,用于配置PlaceSearch对象的属性和方法。 3. 调用search方法进行搜索: ```javascript placeSearch.search(keyword, callback); ``` 其中,keyword为搜索的关键字,callback为搜索结果的回调函数。 完整的使用示例代码如下: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>AMap.PlaceSearch示例</title> <script src="https://webapi.amap.com/maps?v=1.4.15&key=your-key"></script> <script> // 创建地图对象 var map = new AMap.Map('map', { center: [116.397428, 39.90923], zoom: 13 }); // 创建PlaceSearch对象 var placeSearch = new AMap.PlaceSearch({ pageSize: 5, pageIndex: 1, city: '北京市', map: map }); // 搜索关键字为'餐厅'的POI信息 placeSearch.search('餐厅', function(status, result) { if (status === 'complete' && result.info === 'OK') { // 处理搜索结果 console.log(result); } else { // 搜索失败或者没有搜索到结果 console.log(status); } }); </script> </head> <body> <div id="map" style="width: 100%; height: 500px;"></div> </body> </html> ``` 注意:使用AMap.PlaceSearch需要申请高德地图API的key,否则无法使用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值