博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
百度兴趣点下载工具设计和实现
阅读量:5909 次
发布时间:2019-06-19

本文共 999 字,大约阅读时间需要 3 分钟。

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:。

1.前言

在内网项目中需要展示兴趣点,而此时对方并没有提供兴趣点数据,同时也不能通过百度在线服务去获取时,能够将百度的兴趣点趴取组织然后存放在本地显得十分有用。如果,还能将百度兴趣点的坐标逆转换成本地坐标系下的坐标,那么刚才描述的这个问题也便能迎刃而解。

百度服务端提供了请求兴趣点的接口。对于一般用户,一个key一天可以请求的上限是10W次。基于此服务,我们便可以开展百度兴趣点下载工具的研发。

2.思路

                       

3.实际开发中遇到的问题

3.1 请求返回的数据个数问题

不管我们向百度的后台请求的范围是多大,其返回的总数(不是指每页数量)最多不会超过400个。

 

所以,如果想尽可能多的下载到范围内的兴趣点,我们需要做到以下两步:

a.尽量使用范围来进行请求。

b.将范围进行格网化,并且此格网大小要合适。选择1KM作为格网划分单位比较合适。然后按照格网范围进行请求。

在开发过程中,涉及到首先遍历所有格网,其次在每次遍历中,根据第一次返回的total以及pagesize做递归或者堆栈循环。

3.2兴趣点uid重复问题

根据自身所需的关键字组合而获取的所有兴趣点中,会出现uid重复问题。这个主要是某个兴趣点同时属于多个关键字。

所以在后台进行数据整合时,需要进行过滤。

4.优化

4.1 多线程下载

使用多线程下载可以比较好的解决下载速度问题。但是如何划分每个线程所管辖的下载范围,每个线程负责下载的关键字,线程开启多少合适,需要测试优化。

4.2 数据保存问题

数据有可能存在到多种数据库中。这里如果可以生成中间缓存文件。然后再导入进所需的数据库,能规避许多不必要深究的问题。

并且多线程同时操作相同的文件,容易出现线程堵塞或者资源抢占错误。这里建议以不同线程对应不同临时文件来解决。

4.3 错误记录修复

在请求解析时,难免会出现返回结果不正确导致的解析错误等其他问题。这里需要对错误请求进行记录。并且提供修复功能。

4.4 嵌入网页地图

后续中可以嵌入网页地图,方便选择范围。

5.已完成的工具展示

 

 

                                                                              -----欢迎转载,但保留版权,请于明显处标明出处:

                                                                                     如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                                

 

你可能感兴趣的文章
Android SDK换源
查看>>
[原创]典型Web服务器入门
查看>>
VMware/vSphere克隆主机网卡启动失败
查看>>
linux 笔记--RAID,mdadm,LVM
查看>>
【我们一起自学Python】-程序练习:购物车程序
查看>>
ElasticSearch整理 - 概念相关内容
查看>>
jvm监控工具jps,jstat,jstack,jmap的使用方法
查看>>
自动化批量部署Linux系统(Kickstart+DHCP+NFS(http)+TFTP+PXE)
查看>>
SHELL 自动备份MYSQL数据库(备份单个数据库及所有数据库)
查看>>
我的友情链接
查看>>
linux修改IP和DNS
查看>>
windows下安装redis
查看>>
Python基础5 常用模块
查看>>
我的友情链接
查看>>
vi/vim多窗口编辑相关命令
查看>>
IntelliJ IDEA 安装 Scala 插件
查看>>
一台主机部署多个mysqld实例配置
查看>>
通过案例学调优之--跨库建立物化视图(Materialized View)
查看>>
WordPress新增Page的模版文件
查看>>
JAVAWEB应用的policy安全配置值得深思
查看>>