加载中 ...
首页 > 新闻资讯 > 区块链 正文

高德地图api接口

2019-08-15 13:30:48 来源:沈阳小程序开发 作者:沈阳软件开发

目前的想法是抓取目标区域(作者的小县)的所有poi数据,将其作为原始数据保存到数据库,然后将其调用到其他系统。因为我之前已经抓过百度地图的poi数据,所以这项工作非常熟悉。

  1、首先注册一个高德地图的开发者账号,申请一个绑定Web服务的key,然后把刚注册的开发者账号认证一下: 申请账号、key就不赘述了,去高德地图开发平台很简单就能完成了,将账号认证是为了提高每日访问高德地图api接口的次数限制和并发请求。

  2、根据上方api地址里面的介绍,总共分为4中搜索: 关键字搜索:通过用POI的关键字进行条件搜索,例如:肯德基、朝阳公园等;同时支持设置POI类型搜索,例如:银行 周边搜索:在用户传入经纬度坐汇海附近,在设定的范围内,按照关键字或POI类型搜索; 多边形搜索:在多边形区域内进行搜索 ID查询:通过POI ID,查询某个POI详情,建议可同输入提示API配合使用

  我的目标是某个区域的所有poi,所以选择的第三种:多边形搜索

  3、多边形搜索最重要的参数就是polygon-》经纬度坐标对,我在百度地图坐标拾取系统拾取了我的目标区域的经纬度坐标对,如下图:

准备好在这里工作的3个步骤几乎结束,在正式启动代码之前做一个测试,使用浏览器直接访问界面查看返回的数据(当然,高德的api界面有返回数据描述)

如上所示,这里一个更重要的属性是count。根据api的介绍,count是搜索程序的数量(最大值为1000),因此每个请求将返回当前包含在搜索中的poi的数量,并且poi大于1000.没有办法得到它。然后,如果我想查询某个区域的所有数据,我可以将该区域划分为较小区域的集合(显然是递归操作),然后组合这些区域的所有poi数据,这些数据可以找到所有poi。这是我最终需要的数据。听写可能不清楚,见下图:

  好,可以开始撸代码了:

  因为,整个调用API的过程都离不开经纬度,所以首先定义一个经纬度描述的类 `

  然后需要一个调用api,获取返回数据的方法,这个方法参数就是矩形块,当然还需要一个页数,即当前方法获取的是某个矩形区域的第X页的数据(每页上线25个poi,默认20个poi)

  当然,上方已经说过,如果矩形块返回数据count=1000,就说明当前矩形块需要分割,我的想法比较简单,将矩形块按照上方草图,在水平中心和垂直分心分割,1个矩形块就分割成4个小矩形块了,方法如下:

  目前,可以获取到矩形区域经纬度对的集合了,也有获取api数据的方法了,然后就是遍历页数获取数据,自定义操作数据。 当某次分页请求返回的poi个数小于每页最大个数的时候就认为当前区域poi已经完全请求到了。

  到此,基本方法都介绍过了,全部代码如下:

更新(2018-09-20):

1,时间问题,当前50ms请求一个api接口,运行小县的数据(几万)大约10分钟左右,整个城市的主要数据运行间歇使用了一天,最后运行了近27W的数据

2,应用问题,最初的想法是做一个简单的小程序,使用要使用的数据,做一个类似应用的电话簿,你可以扫描下面的小程序代码来体验温馨的提醒:沈阳汇海科技有限公司,汇集了众多网络精英业界顶级设计师和程序员将WEB交互式应用程序,移动互联网应用程序和商业软件作为其战略方向。凭借成熟的技术,创新的理念和不断开拓的精神,我们为各行各业的客户提供服务。

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。