经过技术攻关,终于成功从百度地图APP采集到POI的边界数据,并成功进行了坐标数据还原和边界数据验证。下面详细介绍一下。
如下所示,是从百度地图APP采集到的某小区(uid为ba9b506a87e4f43cf32d8314)的基本信息和边界GEOJSON数据:
![af1a9178dcd2ece5ffd26f55a2f5565a.png](https://i-blog.csdnimg.cn/blog_migrate/c1c535f5157eded1f41677928a268bce.jpeg)
该POI在百度地图APP中的边界截图如下:
![87ad592df530309b67fe527f469f20b0.png](https://i-blog.csdnimg.cn/blog_migrate/54889765144e2b72f367a94b4a1fcacd.jpeg)
下面分析一下返回的GEOJSON数据的含义。
先看下POI的位置坐标参数,如下:
![884a02794c381dc7294a2d158f134c3d.png](https://i-blog.csdnimg.cn/blog_migrate/d36f2a98f9977225457cea7bc2109f59.png)
将[x=12139200, y=4046920]墨卡托坐标转换为经纬度坐标为(109.047102,34.315398),将[x=12139200, y=4046920]墨卡托坐标转换为经纬度坐标为(109.047102,34.315398),
![5c5185e4252ed2aaca23567f72fe737d.png](https://i-blog.csdnimg.cn/blog_migrate/0a775df9a60f7a37415c93fa1f0ad629.jpeg)
再重点看GEOJSON的含义,为了便于查看,JSON数据格式化后如下图所示:
![7f151c834ac601bd1ed01ac7bf60ebea.png](https://i-blog.csdnimg.cn/blog_migrate/6464cfb8212254e06d4781e6c4c849a9.png)
猜测边界信息位于"points"中。但是points数据看起来很奇怪,不是正常的经纬度组。
猜测1,按前后顺序每两个为一组经纬度。
前两个看起来是应该墨卡托坐标,后面的数字很小,而且有负数,很奇怪。
猜测2,从第二组数字起,值为相对于前一组数据的差值。例如第二组数据是(99, -203),真实值应该是(12139329 + 99, 4047084 - 203),即(12139428, 4046881)。
下面验证下上述猜测是否正确。按上述思路将points中的墨卡托坐标对进行修正:
![96eeca20ad06cbe995e0e040018621d1.png](https://i-blog.csdnimg.cn/blog_migrate/987e6a22d2d2ecb504319aeb7bf81112.png)
修正后的13组墨卡托坐标对如下:
![d1142f5c6c059e6acf683d6357cf360a.png](https://i-blog.csdnimg.cn/blog_migrate/0ef022c740852e1e8b08ac37c19212a9.png)
再将其转为经纬度坐标对,如下:
![48ad9538a0e2d6cd3f96bfc4c5067a02.png](https://i-blog.csdnimg.cn/blog_migrate/73de6e59a3f85d75d4f6b3ba07c8a939.jpeg)
使用百度地图API标注,代码如下:
![9f3200167b903c175fea77e9b80bd101.png](https://i-blog.csdnimg.cn/blog_migrate/949e0a60c9650e97fac67d223790af85.jpeg)
标注效果如下:
![8ce0dbaac10b4b23673e2728aafcb00c.png](https://i-blog.csdnimg.cn/blog_migrate/4f22f92c804f4fb1bab043936f7efdd5.jpeg)
和百度地图中查询出来的该小区边界对比一致,如下图。
![3516f497ea12d24050c1fe87e4d40f39.png](https://i-blog.csdnimg.cn/blog_migrate/566ffc55a1adf5e8b9dbd00f88e6ddcb.jpeg)
再找另一个POI验证一遍,从百度地图APP采集到的小区(366581fe3fd52baa714b871e)的基本信息和边界信息如下:
![d1fa8f1d8f4b22619f0b8000f8eea6ab.png](https://i-blog.csdnimg.cn/blog_migrate/ec20bf86d3b23713fa4270462275e94f.png)
修正后的墨卡托坐标组:
![a574ee82dab096ab44e64c789219fbd6.png](https://i-blog.csdnimg.cn/blog_migrate/78fcdcf22d224278e41c8004252f439f.png)
墨卡托转经纬度后:
![49242926fafee0d278794549625cc719.png](https://i-blog.csdnimg.cn/blog_migrate/ac983b5d68838f208011f70c69d50b43.png)
百度地图API标注测试,测试结果截图:
![8826f6df1dece93685104cb85da0b179.png](https://i-blog.csdnimg.cn/blog_migrate/a2a4b788ef62f28c70c6482d9abb08e0.jpeg)
和直接通过百度地图中查询出来的边界是吻合的,如下图所示。
![6e37f98267e3f02568377ec0158a24e1.png](https://i-blog.csdnimg.cn/blog_migrate/dc1ebcf71313678ffee68b0a84ee1e3b.jpeg)
再找一个边界复杂点的小区验证下,从百度地图APP采集到的小区(50fe0b843b8fa7ed0b1cc7b9)的基本信息和GEOJSON数据如下:
![2f9995cc13bcf596282be8cbc8f4eac5.png](https://i-blog.csdnimg.cn/blog_migrate/74b7c928fad883f8e580a9ff01f7ebcb.jpeg)
如下图所示,上面是在百度地图中查询出来的“自然界·云栖”小区的边界,下面是我们采集到的边界参数经过API标记后的结果。上下是吻合的。
![36e13f2b9350cb0104f51c72b0f8ca7f.png](https://i-blog.csdnimg.cn/blog_migrate/382e8dde87475a0fd62ac79738d40379.jpeg)
再来一个边界更复杂的POI:
![ee8760c0ff17472c5324f0eda1caf26a.png](https://i-blog.csdnimg.cn/blog_migrate/55b92902db37c8b029db33095aa868d8.jpeg)
如下图所示,上面是百度地图查询结果,下面是我们采集标注的结果。
![6ed59d30befd56181c3386a6eb46f884.png](https://i-blog.csdnimg.cn/blog_migrate/300ca6c2597914269ecb7f974e48fb3b.jpeg)
了解更多分析及数据抓取可查看:
易数云活动
本文转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请联系我们删除处理。
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。