关于#高德地图#的问题,如何解决?(语言-javascript)

使用高德地图输入提示和POI搜索插件选中值以后出现10标识点,要如何选中值后只显示选中的标识点(如图1),图2是我按照官方案例做的,它会把所有搜索到的地点标识都显示出来。
图1:

img


图2:

img

用下面的可以,但是需要手动添加点,然后信息窗口也要自己加才行


<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
    <title>输入提示后查询</title>
    <link rel="stylesheet" href="https://cache.amap.com/lbs/static/main1119.css" />
    <script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=key"></script>
</head>
<body>
    <div id="container"></div>
    <div id="myPageTop">
        <table>
            <tr>
                <td>
                    <label>请输入关键字:</label>
                </td>
            </tr>
            <tr>
                <td>
                    <input id="tipinput" />
                </td>
            </tr>
        </table>
    </div>
    <script type="text/javascript">
        //地图加载
        var map = new AMap.Map("container", {
            resizeEnable: true
        });
        //输入提示
        var autoOptions = {
            input: "tipinput"
        };

        AMap.plugin(['AMap.PlaceSearch', 'AMap.AutoComplete'], function () {
            var auto = new AMap.AutoComplete(autoOptions);
            var placeSearch = new AMap.PlaceSearch({
                map: map
            });  //构造地点查询类
            auto.on("select", select);//注册监听,当选中某条记录时会触发
            function select(e) {
                placeSearch.setCity(e.poi.adcode);
                placeSearch.search(e.poi.name, function (status, result) {
                    var point = result.poiList.pois[0];//获取第一个返回的结果
                    if (point) {
                        map.clearMap();//清除添加的多个点标记
                        var marker = new AMap.Marker({
                            icon: "https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png",
                            position: [point.location.lng, point.location.lat]
                        });
                        map.add(marker);
                    }
                });
            }
        });
    </script>
</body>
</html>

因为 它是模糊匹配 。根据 network里截图 返回的几个确实都包含你 输入的 名称 。 你要只想要一个 ,需要 你自己写逻辑 把返回的数据 用 filter做个 精确匹配 或许就可以了

let flData=data.filter((item)=>{
    if(item.name=== "输入框的值"){
        return item;
    }
});
console.log(flData)

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632建议你看下这篇博客前端Js处理百度地图和腾讯/高德地图经纬度不同的转换问题