专栏首页C++核心准则原文翻译自学HarmonyOS应用开发(50)- 获取瓦片地图数据

自学HarmonyOS应用开发(50)- 获取瓦片地图数据

本文首先介绍实现地图功能的第一步:获取瓦片地图数据。

瓦片地图原理

读者可以参照文后的链接了解瓦片地图的原理,这里不再重复。简单地说,瓦片地图就是将地图根据缩放层级进行分割,例如缩放层级为3,就表明将地图分为2的3次方行和2的3次方列。知道目标位置的瓦片坐标,就可以获得相应位置的地图数据。

获取地图数据

很多地图服务都提供了使用http协议获取瓦片地图数据的方法。具体可以参照文末的地图瓦片url链接。这里以高德地图为例进行说明:

https://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=2&style=8&x=857&y=391&z=10

该链接是通过高德地图获取大连矢量地图信息的URL。其中x是瓦片的横坐标,y是瓦片的纵坐标,z是缩放层级。以下是获得的地图数据:

获取指定位置的瓦片坐标

可以从经纬度计算出瓦片坐标,计算公式和对应的示例代码可以从【Slippy map tilenames】网页获取:

获取地图数据小工具

为了确认算法和方便调试,作者制作了一个excel形式的小工具。使用这个工具,只要输入经度,纬度和缩放测层级就可以计算出瓦片坐标。

这个工具可以从以下链接下载:

https://github.com/xueweiguo/Harmony/blob/master/StopWatch/LocationToTile.xlsx

参考资料

瓦片地图原理:

https://www.jianshu.com/p/e9e83b427045

高德谷歌腾讯天地图地图瓦片url_吴道简的博客:

https://blog.csdn.net/sinat_41310868/article/details/105959659

Slippy map tilenames(包含各种转换示例代码):

https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames

本文分享自微信公众号 - 面向对象思考(OOThinkingDalian),作者:面向对象思考

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-06-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 自学HarmonyOS应用开发(51)- 获取瓦片地图数据(续)

    以下是获取瓦片数据的代码。由于整个获取过程的时间无法确定,因此将获取动作放入另外的任务。获取任务结束之后再触发UI线程的更新动作。

    面向对象思考
  • 自学HarmonyOS应用开发(52)- 地图数据拼接和缓存

    上一篇文章中我们获取了当前位置所处的地图瓦片并表示,本文介绍获取更多的瓦片数据并进行拼接的方法。

    面向对象思考
  • 自学HarmonyOS应用开发(53)- 获取当前位置

    在registerLocationEvent方法用来注册一个单次定位事件请求;在定位事件响应对象中我们将获得的位置信息通知给地图对象。

    面向对象思考
  • 自学HarmonyOS应用开发(49)- 引入地图功能

    秒表应用的功能就是计时,其中有一种情况就是计算地图上两点之间移动的时间。但是作者在实际使用这个应用的时候,经常会忘了在预定地点开始和停止计时。解决这个问题的想法...

    面向对象思考
  • 自学HarmonyOS应用开发(55)- 使用对象关系映射数据库保存地图数据

    前一篇文章实现了地图数据的正确表示,但是由于每次执行都需要至少一次从网上获取地图数据,不可避免地产生显示延迟。本文介绍利用对象数据库储存已经获取的地图数据,从而...

    面向对象思考
  • 自学HarmonyOS应用开发(61)- 使用异步派发任务后台更新地图数据

    当第一次表示某地的地图数据时,由于数据需要从网络下载,因此会造成初次表示时间过长而影响响应速度的问题。我们使用异步派发任务解决这个问题。先看显示效果:

    面向对象思考
  • 十问华为HarmonyOS:开源一个月,开发者生态建设进度如何?

    基础软件的开源面临着非常大的挑战,除了技术研发困难重重,开源生态和社区的建设更是难上加难。9 月 10 日,在华为开发者大会 2020 上,华为消费者业务 CE...

    深度学习与Python
  • 技术分析 | HarmonyOS到底是不是Android套皮?

    最近鸿蒙系统关注度好高,支持与反对、看好和看衰、「自主的全场景分布式系统」和「Android套壳」各执一词,吵的不可开交。

    刘盼
  • HarmonyOS与Android的全面对比

    第二是我个人非常看好鸿蒙系统的未来,清楚明白华为和一些民族企业担负的责任和国人的期待,虽然带着一些民族感情;鸿蒙刚发布的时候自己是非常激动的,但是后来项目太忙一...

    肉眼品世界
  • 【HarmonyOS 专题】02 搭建简单登录页面

    和尚在搭建完 HarmonyOS 环境之后,有很长时间没有研究过 HarmonyOS,DevEco Studio 已经更新了多个版本,和尚在升级完 ID...

    阿策小和尚
  • HarmonyOS简介

    前两天,华为发布了HarmonyOS 2.0,俺也赶个时髦,给大家简单介绍下HarmonyOS。

    xiangzhihong
  • 带你了解鸿蒙开发基本流程

    2020年9月10号,鸿蒙2.0(HarmonyOS 2.0)系统正式发布,鸿蒙2.0面向应用开发者发布Beta版本,

    Python进击者
  • 【第22期】HarmonyOS应用开发(基础篇)

    这不就是说,以后华为手机都是鸿蒙系统了嘛?鸿蒙还发出了一条视频,视频中显示2021年6月2号将开启鸿蒙操作系统及华为全场景新品发布会。预计现在支持EMUI11升...

    siberiawolf
  • 自学HarmonyOS应用开发(63)- 对象关系映射数据库升级

    随着应用开发的不断深入,或早或晚都会产生升级数据库结构的需求。这种升级可以是为特定的数据表添加字段,也可以是增加新表等。

    面向对象思考
  • 展现鸿蒙的独特魅力:跨设备调用窗口(Page Ability)

    HarmonyOS的核心特性(或称为卖点)之一就是软总线技术,而Page Ability的跨设备迁移是软总线的一个具体技术实现。所谓跨设备迁移Page Abil...

    蒙娜丽宁
  • 程序员看华为HarmonyOS首发

    HarmonyOS代码正式开源,9月10日下午朋友圈散布着这条消息,科技圈炸锅了。各种声音的都有,我也挺好奇的,目前Android、iOS一统江湖,Harmon...

    马上就说
  • TensorFlow成员说:深度学习的未来,在单片机的身上

    Pete Warden,是谷歌TensorFlow团队成员,也是TensorFLow Mobile的负责人,常年遨游在深度学习的大海。

    IT派
  • TensorFlow团队成员说:深度学习的未来,在单片机的身上

    Pete Warden,是谷歌TensorFlow团队成员,也是TensorFLow Mobile的负责人,常年遨游在深度学习的大海。

    量子位
  • 牛掰了!鸿蒙与Android完美融合,将鸿蒙设备当Android设备用

    1. 你看着是鸿蒙,其实它是Android,你看着是Android,其实它是鸿蒙

    蒙娜丽宁

扫码关注云+社区

领取腾讯云代金券