kikita & Maps

GIS,spatial and artificial intellegence learning and share

每过一段时间,对自己前一阶段工作和生活进行复盘,是很有必要的。目的很简单,总结既得经验,剖析问题原因,指导下个阶段更好地运行。

而更好的运行,才能给人带来持久的满足感和幸福感。


定义自己的工作

对于大多数人,工作占了人生的相当大一部分时间。所以先要充分理解这份工作,以及它将对自己的影响。家人经常问我,你是做什么的?我总是回答做地图搞IT云云… 但是面对自己,当然清楚行业名称并不是自己工作的JD。

简而言之,我在做的是一份以地图技术为中心的不断解决各种问题的IT类工作。problem solver 曾是我认为的别人贴给我的最佳标签之一,毕竟这个世界里 problem maker 太多了。


硬技能精进

Hard skill 方面,需要不断学习,拓展和精进产品技术。所有技术同学都懂,IT技术日新月异,一直学习都很难乘风破浪,何况随波逐流放弃治疗?任何一个”我知道”都不是信手拈来。

之前在esri的几年阅读英文技术文档的习惯对我有巨大的帮助,静心读文档解题总是会有助思路。前任和现任供职的这两家公司,有个共同特点,就是产品谱系庞大,产品名录远长于一般餐厅菜单,product manual 页数动辄几千,外加一个在线产品不断更新的developer portal。时间碎片,团队迷你,克服浮躁,学习速度和用户赛跑,都是重重挑战。

Read more »

总是感觉父亲比我更有生活的智慧,他总能从平淡恬静的生活中发现乐趣、秩序和美好。无论是手作、烹饪、园艺… 生活的方方面面。

我和很多人一样,异地求学工作,之前的十几年都没有在家乡和父母一起长期生活;自己放飞了太久了,我心中对美好生活的刻板印象时常被父亲“讥讽”。

疫情这段特别的日子,给每个人的时间轴都烙上了特别的时间戳。而于我,是难得与家人腻在一起的时光。

父亲是位幽默有趣的老男孩,对生活工作有自己的理解,他总是能给我一些启发。他有时也会给我讲讲他早年体制内工作时的轶事,顺便指点下我的资本主义打工迷津。

生活和工作的平衡,在疫情之前我从来不觉得需要特别思考,一切节奏跟着通勤按部就班。之前多年一日的习惯早已固定了。

而现在各种因素都在潜移默化,空间边界消失,时间边界就容易也不清晰,高度自治的环境和工作中不断涌现的问题,经常让人久伏案板忘记时间。

这时,以父亲为代表的敲打团就开始要求中场休息。keep的slogan-“自律给我自由”,已然成了劝诫的反面,哭笑不得。那我是自律呢还是不自律呢?

谢谢你,感恩所有,珍惜当下🌈🌈🌈

地图技术是对真实世界既有位置的表达,定位技术是对当前位置的求解。随着各种传感器、移动设备的广泛使用,GIS和LBS通常无缝结合在同一个解决方案中。GIS更侧重于稳坐后台解决空间数据的提取、处理、分析、挖掘,LBS更侧重于深入终端实现信号收集、位置获取、轨迹追踪。GIS从一个小众而专业的领域,随着互联网的潮流,逐渐拥抱普适,增值LBS。

从终端用户的角度看,这些区别是不敏感的,也不必要的。例如,在一个陌生地方到了饭点儿,估计大家十有八九会打开App,看下周边地图,知道我在哪,搜下周边饭馆,然后计算路线导航过去,吃饱喝足一气呵成即可。

以上面这个觅食的例子展开,从产品功能角度,至少需要如下几个模块。App首先获取设备的位置(positioning),通过这个位置请求周边map tile(map service), 然后搜索指定Category的POI(search&F/R geocoding),然后计算路线(routing/direction)并导航(TBT Navigation)……

这一篇我想整理一下,位置服务第一步, Positioning 相关的内容。

HERE Mobile SDK 中不仅提供了Android 系统中自带的基础定位接口,而且特别提供了HERE增强版的定位能力,更精准,高效,可靠。这些增强版的定位能力包括:

  • 蜂窝网络定位 - 支持 GSM, CDMA, WCDMA, TD-SCDMA ,LTE
  • WiFi 网络定位
  • 高精度室内定位 - 支持 WiFi 和 蓝牙
  • 离线定位 - 无任何网络连接时,使用预先按需自动下载的定位数据缓存、辅助定位数据,实现离线定位
  • 定位模式自动融合,择优切换, 包括 GNSS,WiFi,蓝牙,蜂窝信号间的切换
  • 室内定位 -支持于室内地图结合使用,支持楼层探测。 室内地图既可以是HERE已发布的公共资源,也可以是用户私属地图
  • HERE定位能力无缝覆盖全球

以上功能列表解释几个点:

GNSS(Global Navigation Satellite System)包括除了我们熟知的 GPS,还包括 GLONASS, Beidou,

Read more »

上一篇,我们一起结合 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 »
0%