zxk8023 2023-04-13 17:12 采纳率: 75%
浏览 84
已结题

【百度地图API】关键字提示搜索组件失效

百度地图API3.0——关键字提示搜索组件
这是官网上的实例,打印语句是我自己添加的

img

如图所示,当我在输入框中输入文字,他会匹配地标,当选择后,后再页面上标点;
注意!
打印语句:
Ji.Ir(控制台)中是有10列数组的,里面包含了10组匹配的地标信息(包含经纬度)

我的代码

var map;
function loadSearchDestination() {

    map = new BMap.Map("map_order");
    map.centerAndZoom("上海", 19);
    map.enableScrollWheelZoom(true);
    map.setCurrentCity("上海");

    var ac = new BMap.Autocomplete(    //建立一个自动完成的对象
        {
            "input": "search",
            "location": map
        });
    ac.addEventListener("onhighlight", function (e) {  //鼠标放在下拉列表上的事件
        var str = "";
        var _value = e.fromitem.value;
        var value = "";
        if (e.fromitem.index > -1) {
            value = _value.province + _value.city + _value.district + _value.street + _value.business;
        }
        str = "FromItem<br />index = " + e.fromitem.index + "<br />value = " + value;

        value = "";
        if (e.toitem.index > -1) {
            _value = e.toitem.value;
            value = _value.province + _value.city + _value.district + _value.street + _value.business;
        }
        str += "<br />ToItem<br />index = " + e.toitem.index + "<br />value = " + value;
        G("searchResultPanel").innerHTML = str;
    });

    var myValue;
    ac.addEventListener("onconfirm", function (e) {    //鼠标点击下拉列表后的事件
        var _value = e.item.value;
        myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
        G("searchResultPanel").innerHTML = "onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue;

        setPlace();
    });

    function setPlace() {
        function myFun() {
            console.log(local)
            console.log(local.getResults())
            pp = local.getResults().getPoi(0).point;    //获取第一个智能搜索的结果
            console.log(pp)
            map.centerAndZoom(pp, 18);
            map.addOverlay(new BMap.Marker(pp));    //添加标注
            $("#h_point").val(pp.lng + "-" + pp.lat);
            $("#h_position").val(myValue);
        }

        var local = new BMap.LocalSearch(map, { //智能搜索
            onSearchComplete: myFun
        });
        local.search(myValue);
    }
}

我的控制台

img

如图:我的代码是从实例中copy,一模一样,但在我这里,输入目的地也有下拉选项,可当选中选项后,打印local、local.getResults()【也就是页面上的Ji】里面没有数组(正常情况行是有10组数据)
试了一下午,代码都是正常的,没发现哪里有问题,只能求助于各位

  • 写回答

5条回答 默认 最新

  • zxk8023 2023-04-13 17:28
    关注

    还有一处不同,还是控制台打印Ji.Ir 中的moreResultsUrl属性
    官网:

    "https://api.map.baidu.com/place/search?res=jsapi&query=上海市浦东新区华康佳苑&region=上海市&output=html"
    
    

    本地:

    "https://api.map.baidu.com/place/search?res=jsapi&query=上海市浦东新区华康佳苑&region=undefined&output=html"
    
    

    我在代码中也进行了setCurrentCity和centerAndZoom
    本地的这里显示undefined
    !!!!!
    附上实例地址https://lbsyun.baidu.com/jsdemo3.0.htm#js3_31

    评论

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 修改了问题 4月13日
  • 创建了问题 4月13日

悬赏问题

  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗
  • ¥15 MOD04_3K图像预处理