local.getResults()为undefined,导致local.getResults().getPoi(0).point得不到值。是不是要用回调函数啊,这个怎么解决呢?
可以看下官方文档,可能是异步的,需要传入一个回调函数
可能是因为getResults()方法是异步的,需要等到之前的请求完成才能获取结果。因此,需要在调用local.search()方法时,传入一个回调函数,用于在获取到结果后处理返回结果。
以下是一个获取关键字地址定位点并实现路径规划的示例代码,其中使用了回调
// 初始化地图
var map = new BMap.Map("map");
// 根据关键字搜索地点
var local = new BMap.LocalSearch(map, {
onSearchComplete: function(results) {
if (local.getStatus() === BMAP_STATUS_SUCCESS) {
// 获取第一个搜索结果的坐标
var point = results.getPoi(0).point;
// 在地图上添加标注
var marker = new BMap.Marker(point);
map.addOverlay(marker);
// 获取当前位置,并规划路线
var myGeo = new BMap.Geocoder();
myGeo.getPoint("当前位置", function(myPoint) {
if (myPoint) {
var driving = new BMap.DrivingRoute(map);
driving.search(myPoint, point);
}
});
}
}
});
// 搜索关键字
local.search("北京市海淀区中关村大街27号");