通过FME实现零代码获取地图POI数据


前言

爬取百度地图、高德地图POI的方式很多,但这种是不需要敲代码的,尤其比较适合有FME基础的人,加上FME的缓存、可视化功能强大,对于菜鸟来说太适合了。

一、准备工作

1、数据准备:本次是通过矩形搜索区域获取POI数据,所以需要准备一个面要素shp文件,坐标系为地理坐标系(经纬度),当然也可以是投影坐标系(xy),当源数据是投影坐标系时需要在模板中加入一个reprojector做个重投影即可。
2、Key准备:到百度地图开放平台创建一个应用得到一个Key,首先你得有百度账号,然后认证为开发者,这样访问的权限要高很多,一张身份证就可以搞定,秒通过。不会的请看文末参考文献第一个链接。
在这里插入图片描述

二、模板思路

在这里插入图片描述

【FME模板资源】(点击这里下载)

1、读入shp,使用tiler转换器把分搜索区域划分成很多小的矩形区域来解决单次访问上限的问题,注意单位是经纬度。具体设置多少自己根据需要多次尝试即可。
2、BoundsExtractor转换器提取矩形四至经纬度。
3、创建链接的各个部分,预留一个ID字段备用
在这里插入图片描述
4、通过Craator等转换器创建一个20页的字段备用,出来的结果是有图,就是为了不走循环,在FME里做循环太复杂了。
在这里插入图片描述在这里插入图片描述
5、把通过相同ID页码挂接到给原来的矩形,勾选列表和处理重复提供者,这样每个矩形实际就已经有了20个页码,然后通过暴露就可以全部释放出来了。
在这里插入图片描述
6、剩下都是解析的部分了,不是关键的步骤,就不一一描述了,可以看下FME基础训练营上有讲解。
7、假如你想要的区域不是矩形,需要导入的范围线线去裁剪过滤你要的结果。
8、经过测试,其实链接?之后的各个部分顺序可以不用管在这里插入图片描述
※9※、经过测试,还有一个坑:假如你写query=美食&tag=酒吧,那么你得到的信息不仅仅是酒吧
,还有地址里含有“酒吧”二字的POI;假如你写query=水系,那么你得到的不仅仅是水系,还会得到水务部门的POI;所以还需要数据清洗。
ps:不会的请看文末参考文献二。

总结

爬取数据的方法千万种,找到适合自己的一种才是最重要的,我刚看前辈的博文的时候已经觉得很好了,后来发现其实不用走循环就能实现,也许是我玩不转FME里的循环(战术后仰)。第一次写博文,不对之处,欢迎各位大佬留言、私信骚扰。

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
参考文献:
[1]: 如何申请百度API Key
[2]: FME爬取百度POI

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值