zoukankan      html  css  js  c++  java
  • vuebaidumap 关键字查询

    <view class="topSearchBox">
                <van-search
                    id="suggestId"
                    right-icon=""
                    left-icon=""
                    placeholder="请输入地址或地块名称查询"
                    v-model="keyword"
                    @search="onKeyworkSearch"
                    shape="round"
                    show-action
                >
                    <template #action>
                        <div @click="onNameSearch">
                            <svg-icon icon-class="search" class="searchIcon" />
                        </div>
                    </template>
                </van-search>
                <view class="searchResultPannel" id="searchResultPannel"></view>
            </view>
    
    <baidu-map
                    class="map-contain"
                    :scroll-wheel-zoom="true"
                    :center="center"
                    :zoom="zoom"
                    MapType="BMAP_SATELLITE_MAP"
                    @ready="mapReady"
                    @click="mapClick"
                    @moving="syncCenterAndZoom"
                    @moveend="syncCenterAndZoom"
                    @zoomend="syncCenterAndZoom"
                ></baidu-map>
    methods: {
            //地图加载完成
            mapReady({ BMap, map }) {
                var that = this
                this.BMap = BMap
                this.map = map
    
    //创建自动完成对象
                function G(id) {
                    return document.getElementById(id)
                }
                var ac = new BMap.Autocomplete({
                    input: 'suggestId',
                    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() {
                    map.clearOverlays() //清除地图上所有覆盖物
                    function myFun() {
                        var pp = local.getResults().getPoi(0).point //获取第一个智能搜索的结果
                        map.centerAndZoom(pp, 18)
                        map.addOverlay(new BMap.Marker(pp)) //添加标注
                    }
                    var local = new BMap.LocalSearch(map, {
                        //智能搜索
                        onSearchComplete: myFun,
                    })
                    local.search(myValue)
                }
    },
    onItemConfirm(e) {
                var that = this
                var _value = e.item.value
                this.keyword =
                    _value.province +
                    _value.city +
                    _value.district +
                    _value.street +
                    _value.business
                var map = this.map
                var BMap = this.BMap
                var local = new BMap.LocalSearch(map, {
                    onSearchComplete: () => {
                        var res = local.getResults().getPoi(0)
                        var pp = local.getResults().getPoi(0).point //获取第一个智能搜索的结果
                        // debugger
                        // that.map.centerAndZoom(pp, 18)
                        that.center.lat = pp.lat
                        that.center.lng = pp.lng
                    },
                })
                local.search(this.keyword)
            },
    }
  • 相关阅读:
    chrome的console功能
    vue-cli · Failed to download repo vuejs-templates/webpack: connect ETIMEDOUT 13.229.188.59:443
    let const区别!
    字符串拼接事故!
    git常用的操作命令
    vue项目中利用popstate处理页面返回操作
    Mac下安装nginx并配置SSL实现Https的访问
    浏览器缓存
    HTTP相关知识点
    CORS请求
  • 原文地址:https://www.cnblogs.com/jisi2012/p/15596707.html
Copyright © 2011-2022 走看看