先说结论:版本是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博客

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐