_孙大圣_
_孙大圣_
  • 发布:2021-10-21 12:00
  • 更新:2021-10-26 20:35
  • 阅读:517

nvue mapSearch是否有类似poiSearchInCity的方法呢,目前只有poiSearchNearBy方法,有个需要需要按城市搜索城市内信息

分类:nvue

nvue mapSearch是否有类似poiSearchInCity的方法呢,目前只有poiSearchNearBy方法,有个需要需要按城市搜索城市内信息

2021-10-21 12:00 负责人:无 分享
已邀请:
_孙大圣_

_孙大圣_ (作者) - 只想用nvue

刚试出来,mapSearch下有一个poiKeywordsSearch,和poiSearchNearBy方法类似,

mapSearch.poiKeywordsSearch({  
                    city:city,//要搜索的城市--不知道是否支持县级以下,我的需求,市目前是可以的  
                    keywords:key,//搜索的值的信息  
                    point:point,//这个值可以直接传当前地理位置,感觉实际上没有用,但是不传会报错  
                    key:key,//跟keywords保持一致,好像没啥软用,但是要传  
                },(ret)=>{  
console.log(ret);  
});

这个方法有个问题,距离是不能显示出来的distance是-1

DCloud_iOS_XHY

DCloud_iOS_XHY

稍微会在官方文档添加上

poiKeywordsSearch(Object,callback); 接口说明

关键字检索

Object
属性 类型 默认值 必填 说明
key String 搜索关键字
index Number 1 要获取检索结果的页号索引(每页10条数据)
city String 查询城市,可选值:cityname(中文或中文全拼)、citycode、adcode.code 参考表
types String 类型,多个类型用“|”分割 可选值:文本分类、分类代码 code 参考表
point Object 设置后,则返回结果会按照距离此点的距离来排序 {latitude: 纬度, longitude: 经度}
sortrule Number 0 排序规则, 0-距离排序;1-综合排序, 默认0
callback 返回 Object 参数说明
属性 类型 说明
type String "success" 表示成功, "fail" 表示失败
code Number 成功返回 0,失败返回相应 code 码
message String 失败描述
totalNumber Number 返回的POI数目
currentNumber Number 当前页POI数目
pageNumber Number 页数
pageIndex Number 当前页号索引
poiList Array.<poiObject> POI信息数组
  • _孙大圣_ (作者)

    你好,请问下,可以添加一下分页吗,目前几个都没有分页内容,poiSearchNearBy只能展示10个

    2021-10-21 15:13

  • DCloud_iOS_XHY

    回复 _孙大圣_: index 可以设置第几页

    2021-10-21 15:46

  • _孙大圣_ (作者)

    回复 DCloud_iOS_XHY: 想问下有没有offset(pageRows)这样的,想1页显示20个

    2021-10-21 17:12

_孙大圣_

_孙大圣_ (作者) - 只想用nvue

然后再问下poiList里面的distance是-1,这个后续会有处理吗

  • DCloud_iOS_XHY

    point 传了吗?

    2021-10-21 15:47

  • _孙大圣_ (作者)

    回复 DCloud_iOS_XHY: 传了的,poiKeywordsSearch有问题,poiSearchNearBy是没有问题的,有distance

    2021-10-21 17:14

  • DCloud_iOS_XHY

    回复 _孙大圣_: 【正确报bug的姿势】https://ask.dcloud.net.cn/article/38139 ,提供详细的环境信息

    2021-10-21 19:57

  • _孙大圣_ (作者)

    回复 DCloud_iOS_XHY: 这个直接随便试就可以了,调用poiKeywordsSearch方法就可以了

    2021-10-24 00:52

  • _孙大圣_ (作者)

    还有个问题,poiKeywordsSearch下,city值不是有效的,比如CITY传成都,但是你搜索普陀山,还是能搜索到普陀山信息,怎样才能将数据控制在当前城市下搜索呢

    2021-10-24 00:53

  • _孙大圣_ (作者)

    当当前城市下,搜索的地名信息list是大于1的,就不会出现搜索到其他城市情况,当当前城市搜索到的地名信息未空的时候,就能搜索到其他城市的信息

    2021-10-24 00:55

  • _孙大圣_ (作者)

    目前暂时处理方法,调用mapSearch.poiKeywordsSearch得到的数据,对list进行数据验证,如果list[i]的city不等于当前选择的city,则过滤掉数据

    2021-10-24 00:58

_孙大圣_

_孙大圣_ (作者) - 只想用nvue

poiKeywordsSearch下,city值不是完全有效的,比如CITY传成都,但是你搜索普陀山,还是能搜索到普陀山信息
复现:当当前城市下,搜索的地名信息list是大于1的,就不会出现搜索到其他城市情况,当当前城市搜索到的地名信息未空的时候,就能搜索到其他城市的信息。
目前个人解决方法:


let pattern=/[`~!@#$^\-&*()=|{}':;',\\\[\]\.<>\/?~!@#¥……&*()——|{}【】';:""'。,、?\s]/g;  

                    let newList = [];  

                    for (let i = 0; i < ret.poiList.length; i++) {  

                        let poi = ret.poiList[i];  

                        if(this.cityName != poi.city){  
                            continue;  
                        }  

                        poi.name = poi.name.replace(pattern,"");  

                        poi.address = poi.address.replace(pattern,"");  

                        newList.push(poi);  

                    }  

                    callback(newList);
DCloud_iOS_XHY

DCloud_iOS_XHY

可以支持设置每页显示多少个,和限制在当前城市搜索,下个版本会新增参数控制

该问题目前已经被锁定, 无法添加新回复