kikita & Maps

GIS,spatial and artificial intellegence learning and share

上一篇,我们一起结合 Interactive Maps 了解了HERE Map Service 的地图渲染样式, 在此之外,HERE Mobile SDK 向开发者提供的在线地图产品中,还有 Vector Tile 和 Map Feedback service 值得拥有。

PS:除了SDK产品之外,HERE 在线地图产品中的 RESTful API 产品包括:Vector Tile,Image Map,Map Tile,Weather,Map Feeddback。

Vector Tile

Vector Tile 在 HERE 产品家族中是新进一员,截至此文章的发布日期,仅在 mSDK Lite 版本 中有支持,目前为 Lite Edition 4.2 。我们静待 mSDK Premium Edition 的 4.x 版本吧,快了。

这使用这个服务之前,可能我首先需要回答大家的十万个为什么。

例如,什么是Vector Tile?为什么使用 Vector Tile ?

Vector Tile 是相较于传统的 raster tile 而言的,可能很多读者会问,地图数据本身不就是vector data 吗?为什么早期的地图服务反而会是 raster tile ?哪种好? 我该用什么?

在传统的地图服务生产过程中,后台地图数据是专业复杂的数据格式(如 Oracle Spatial,shapefile,FileGDB,等一切地理数据格式),需要专业的重地图数据编辑器才能读写(如商用专业的ArcGIS Desktop/Pro,免费的QGIS等)。当我们希望通过B/S服务的形式提供在线地图时,对浏览器要求不高、支持友好的png,jpg,tiff等图片就成了解决方案。 将地图在服务器端按预定义的切片结构/caching scheme 进行预渲染,然后,进行大量切片缓存工作。 在浏览器请求地图服务时,推送不同层级的图片(Raster Tile)就成了传统地图服务器的日常,其性能的保障都是依赖分布式高可用的服务器配置。例如,HERE 提供覆盖全球的地图服务(在Developer Portal可以查看具体的 map coverage level,就是由部署在AWS全球6个数据中心上支持的。

Mapbox 提出更智慧的 vector tile ,这种切片格式早已备受各大GIS、LBS厂商的青睐。vector tile 采用了与 raster tile 类似的 caching scheme,只是每片tile的内容从raster 变成了vector。 我们想象一下,如果表示几条路的一片512px×512px 的tile,用raster格式,那就需要几个512×512 的矩阵表示,而用vector格式,只需要包含数对坐标和位移的串表示。 因此,vector tile 在尺寸上有明显优势,从而传输性能就高了。这是因为这个特性,vector tile 允许用户在客户端自定义 vector style ,例如路或点状地物的颜色和符号, 不像 raster tile 是预渲染的镜像,已经是静态结果,渲染样式不能被客户端修改。

如果提到vector 和 raster 哪个好? 我想答案可能不是绝对唯一的。如果从传输性能和客户端简单符号的自定义的角度,一定是vector tile更优; 但如果从地图渲染丰富度、复杂度的支持角度,raster tile 还是占有一席之地。

Read more »

通过上一个入门篇,相信你已经对 HERE mSDK 有了一定的印象。
作为一个地图SDK,最基础最重要的功能首先是地图渲染, 那么今天我们仍然以 HERE mSDK (Premium Edition)为例一起了解下。在 HERE Location Services 中有一个 Interactive Maps Service,用于访问服务器端预渲染的瓦片服务/tile map, 这就是今天要用到的原料。

Let’s get our hands dirty !
今天这篇我们先从最基础的 Map Rendering 和 Map Schemes 开始。 AndroidXMapFragment 类提供了交互式地图体验支持, 例如缩放、平移等等。AndroidXMapFragment初始化之后,可以通过Map map = mapFragment.getMap(); 获取 Map
Map 类中提供了很多 map attributes 帮助开发者确定地图的展示方式,例如:map center,zoom level, tilt, orientation, map projection, map animation ……

详见开发文档:Map

HERE Interactive Maps 提供了很多样式的地图外观(Map Scheme)可供选择,以满足不同审美和专题的需求。简而言之,地图数据是一套,皮肤可有很多种。

在开发者文档中,有一页图文可供参考:Map Scheme

HERE 在 Github上有官方的示例代码库,这篇的相关示例可以在这个连接中找到:Map Attribute

我在这个工程中稍作修改,增加了 Satallite Mode 和 Night Mode, 因为后者是最近备受欢迎的一种渲染方式,这么好看的地图不做在样例里觉得有点可惜。 Night Mode 一方面可以作为夜晚时段的地图展示,另一方面可以作为设备暗色主题搭配的地图显示。
另外,这个示例工程中,还包含了公交/Transit 主题地图的展示(None/公交站/公交线路),以及路况/Realtime Traffic Service 的展示 (Traffic Flow / Incident)。

Happy testing ^^

如下是在 Nexus 10 模拟器中的录屏:

Read more »

今天整理下 HERE SDK的入门攻略~

HERE mobile SDK 是HERE location Servie(HLS)产品家族中重要的一部分,支持 Android 和 iOS 两大主流系统;从功能上分为 Lite(旧版本称 Starter)和 Premium 两个license level,顾名思义,前者支持较轻量级的功能,后者具有更专业更高级的功能。具体的功能清单和版本对比,可以在点击 官网链接 查到。

HERE Developer 网站提供免费测试账号,建议大家注册一个玩一玩。每个 Freemium Plan 账号下的 Project 可以拥有 Rest API、JS API、mSDK、studio 等很多产品的测试权限。对于个人 developer 来说,我认为足矣。

Freemium Plan 福利内容

Location Services

  • 250K Transactions per month
  • 5K SDK Monthly Active Users
  • 250 Assets per month
  • Pay per additional Transactions

Studio

  • 2.5GB Data transfer per month
  • 5GB Database storage per month
  • Pay per additional Data transfer or Database storage

Steps

获取Credentials及SDK安装包

登录 HERE Developer 账户之后,即可在自己创建的Project中生成每个产品对应的密钥/credentials。

在 SDK 密钥下方就有 SDK安装包可供下载。如下图即为 HERE mSDK (premium edition) 的示例:

检查 System Requirments

Read more »

又是很久没来更新,以至于kikitamap.com这个域名因为没有续费而已经停用接近两周;要不是今晚忽然想写点什么,还不知道什么时候我才能发现。

工作结束了,宝贝睡下了,每到接近12点,似乎属于我自己的完整时间才开始展开。所以,我的母亲总是不解,为什么终于到了你的休息时间,反而又要”熬夜“ ?事情不能明天做吗? 我总是无言以对,我这种矫情的时间独占需求,估计她不会理解,只好安抚她说马上就睡。大概,也不是所有人都有与自己独处的强需求。

我喜欢拍照,拍各种自认为有趣的东西,因此手机空间经常告急,只好翻一翻,删除一些不喜欢的或是没有什么内容的。忽然发现了这张很久前拍的。

当时的场景是我在等人,刚好从站的位置,看到自己的影子叠在橱窗里的模特身上,感觉很有点意思,就顺手拍了下来。世间熙熙攘攘,我们大多数都是追寻成为模特壳子的样子;住在壳子里面的人的样子呢?ta们是同一个吗?

烟台,2020.01.06

大雪之后,银装素裹,2020这一年的冬天格外寂静,雪地上没有脚印

0%