首先你要了解 此功能的作用是什么?
拿最常见的例子:美团外卖。当你打开美团的时候你会发现自动获取你当前位置的GPS定位。然后会有一些外卖店铺根据你的定位来检索出你附近的店铺。而我们今天要做的就是这个功能。
其次我主要以微信小程序定位来给小伙伴们做出演示。微信小程序的定位比app定位检索云图更为复杂。包含了app检索云图的所有功能。
首先我们需要一个高德开发api的账号。
https://lbs.amap.com/按照注册流程去注册即可。
注册完以后点击进入我们的管理台。进入管理台后,你要创建一个应用。类似于短信网关那种,你需要获得一个key。用来进行身份识别。然后为这个应用添加key
因为小编我是后端的 所以我只用到了web服务和微信小程序。 key的名称随便写。这个没啥大用。
选择web服务你会发现下面很多可使用的服务。选择微信小程序就只有一个微信小程序sdk。
因为是微信小程序的定位。所已你需要添加俩个key。一个是web服务,一个是微信小程序。
一切就绪以后。你还需要创建一张云图的表。因为你所有的数据来源需要高德帮忙你计算位置。然后筛选出你所想要的数据。
重新打开高德,开发支出里有一个数据管理台。然后新建一个地图。很坑的是你需要在地图标一个点。然后添加进去你的表里。
然后点击开放选项获取你的表id
添加自己的定义的列。表里默认的字段有_id _name _address 这是云图表必存在且无法修改的列。
高德准备工作完成后。我们就可以进行服务端了
composer axios/amap-api-sdk把SDK引入到项目中
然后你需要用代码把数据加到云端
话不多说直接上代码
添加
$amap_config[‘key’], $amap_config[‘secret’] 代表的是key和sercet $amap_config[‘table_id’]代表的云图ID。
$request->getContent();代表与高德云图交互后的结果
修改:
这个基本和添加一样。因为你带了_id 所以云图自己识别变添加为更新操作。
添加和修改基本是比较简单的。主要的还是云图检索这一块。
官方给我们提供很多中检索 本地检索 周边检索 多边形检索 id检索等 。
https://lbs.amap.com/api/yuntu/guide/data/search。链接地址
使用的最多的是周边检索
给定中心点和半径以的范围内,搜索符合查询条件的数据,并按给定排序,返回结果。
详细文档参考https://lbs.amap.com/api/yuntu/reference/nearby
搜索
https://lbs.amap.com/api/yuntu/reference/cloudsearch 详细的参考手册
这是这个sdk所支持的全部检索。基本和官方手册的用法一样,进行了简单封装。
返回内容的信息如上图所示。具体参考
https://lbs.amap.com/api/yuntu/reference/cloudsearch。
对于排序和检索你还需要一定的配置。
keywords关键词检索 你需要在你的云图表里的开发选项里的索引管理的文本索引里添加。注意默认的是对_name 和 _address 筛选。优先级高于你自定义的文本索引字段。
你需要检索哪个字段 在这里添加对应的列即可。
filter和setSortRule 自定义检索和排序检索 你就要在筛选排序索引添加。注意参与排序的索引类型必须是整形,字符串类型不参与排序。
需要注意的是 filter可以使用+这个来筛选更加的索引 。但是setSortRule只能对一个字段排序。
好了 如此云图的检索功能就实现了。