折线编码/解码中的“级别”到底是啥?

Posted

技术标签:

【中文标题】折线编码/解码中的“级别”到底是啥?【英文标题】:What exactly are "levels" in polyline encoding/decoding?折线编码/解码中的“级别”到底是什么? 【发布时间】:2016-07-03 23:41:18 【问题描述】:

什么是折线编码/解码中的“级别”,它们与Google Maps API v3 或android Maps API v2 中的地图缩放级别究竟有什么关系?

我能找到的唯一描述来自Interactive Polyline Encoder Utility:

Google 地图中的折线由一组纬度/经度对组成。此外,对于编码折线中的每个顶点(位置),可以指定一个级别,指示该位置应出现在该级别和任何更高级别(即缩放的任何减少)上。如果某个位置未出现在给定级别上,则该线将从上一个可见位置转到下一个可见位置。请注意,第一个和最后一个位置必须是 3 级点,否则折线不会显示在所有级别上。

“3 级”是否对应于 Google Maps API v3 或 Android Maps API v2 中的 3 级缩放?

这是 Google Maps API v3 中缩放级别 3 的样子(没有显示折线 - 这只是为了说明“缩放级别 = 3”的样子):

如果我们进一步缩小一级以放大 2 级,是否应该显示“3 级”点?

引用:

请注意,第一个和最后一个位置必须是 3 级点,否则折线不会显示在所有级别上。

...似乎表示Level 3点应该在所有级别上显示,包括缩放级别2、1和0。

我想知道如果声明:

...可以指定一个级别,指示该位置应显示在该级别和任何更高级别(即缩放中的任何减少。)

...实际上应该是:

...可以指定一个级别,指示该位置应显示在该级别和任何更高级别(即缩放中的任何增加。)

“缩小缩放”似乎不正确,因为 18 级(非常放大)点将在 3 级(非常缩小)上呈现。

“增加缩放”似乎通常是有意义的(当您放大到 18 级时,您也会渲染 3 级缩小点 - 换句话说,当您放大到更靠近地图时添加细节) -然而,这似乎与 3 级点应以较低的缩放级别 2、1 和 0 渲染的说法相矛盾。

在 Android 上,开源的 android-maps-utils library 包含一个 decode polylines 的方法,但它不处理级别,所以我不知道是否有现成的到 Android Maps API v2 缩放级别的映射.

谁能解释清楚?

【问题讨论】:

我想知道你的代码中的“编码折线”是在哪里写的。我根本看不到代码。 @wf9a5m75 javascript 代码中没有任何编码的折线,也没有显示在地图上 - 我使用这些屏幕截图只是为了说明特定缩放级别在 Google 地图上的样子。抱歉,如果不清楚 - 我会在问题中添加一个关于此的注释。 【参考方案1】:

关卡是一个过时的功能。他们控制点在某些缩放级别是否可见。它们是 Google Maps API v2 的一个重要功能,但您现在应该忽略它们; Google Maps API v3 会自动完成。

【讨论】:

以上是关于折线编码/解码中的“级别”到底是啥?的主要内容,如果未能解决你的问题,请参考以下文章

java中Char到底是啥格式的编码

Matlab基于μ律15折线的PCM语音编解码系统(GUI设计simulink附完整代码)

Matlab基于μ律15折线的PCM语音编解码系统(GUI设计simulink附完整代码)

Matlab基于μ律15折线的PCM语音编解码系统(GUI设计simulink附完整代码)

DKIM 中的 body 到底是啥意思

Matlab基于A律13折线的PCM语音编解码系统(GUI设计simulink附完整代码)