参赛单元:互联网、大数据及云计算
作者:杨忠智
单位:平安国际智慧城市科技股份有限公司
前言
继续我的【零编码】系列。
简单是美。虽为“码农”,但本身还是个GISer,所以在进行数据处理,尤其是GIS数据时,我更喜欢使用少量甚至零编码来实现。方法千万条,简单第一条,而FME无疑为我提供了这样的便利。简单、高效、实用而不失优雅。可以说我大部分的数据处理工作基本都是利用FME完成的。
前段时间有个搞城市研究的朋友需要对城市大尺度范围内的路网通行效率进行研究,他对高德的路况数据垂涎三尺,但苦于不好下手。见猎心喜,一时技痒,心想何不利用FME来实现一个呢。
说到爬虫,无非是获取,解析(处理),入库(存储)三部曲。高德路况的获取流程也不外如是,不同的只是工具。而我偏爱于FME,首选的自然是它。既能少量甚至零编码,效率还贼高,何乐而不用呢。
由于本人是在深圳工作,恰巧朋友关注的也是深圳路况,就拿深圳做案例。下面正式进入主题。
一、总体流程
工作总体流程大体上分准备、建模、入库及优化四个阶段。
准备阶段主要是做一些基础准备工作,以便后续阶段的顺利进行。
建模阶段主要是根据高德API参数来划分网格,然后进行Http数据请求,最后根据数据结构来进行数据解析。
入库阶段主要定义最小增量更新单元,最后进行数据入库。
优化阶段主要是就存储、数据请求以及解析三个方面进行优化提升处理。
二、准备工作
2.1 申请Key
在使用高德路况API前您需先申请Key,若无高德地图API账号需要先申请账号。高德API网站上有详细说明,不多说。
2.2 深圳边界数据
准备深圳的边界数据,如为Polyline类型,最好是先转换成Polygon类型,以方便进行空间分析(过滤);同时,坐标需要转换为高德地图使用的GCJ02坐标。本文默认边界数据为Polygon类型,并且为GCJ02坐标,不多做处理。
2.3 建立空间数据库
本文使用的是PostgreSQL数据库,9.5及以上版本即可。在PostgreSQL建立名为traffic_status的数据库,并添加扩展postgis。