skmaps - Skobbler 如何确定要显示的 POI 的优先级?

标签 skmaps scoutstyleeditor

我正在尝试自定义 Skobbler map 以制作公共(public)交通 View 。我找到了一些相关的 POI ID,并使它们在各种缩放级别上可用(并更改了相关的配置设置,以便为这些缩放级别设置正确的图标/文本)。但当我缩小时,兴趣点逐渐消失,并且在所有兴趣点消失之前我无法将其接近真正缩小的水平。

我尝试将其与确实保持可见的 POI 进行比较 - f.ex。城市,并试图找出为什么它们能够占据优先地位,而我的地铁站却消失了。我在配置中看到的唯一无法复制的东西是人口设置 - 但我不知道这是否相关。我也尝试过设置优先级,但似乎没有效果(也许我使用方式错误)。

如果有人有任何建议,我们将不胜感激。

最佳答案

我假设您正在直接编辑样式文件。

在样式文件中,您需要修改“zoom”部分: IE。

          {
            "3dzoomfactor" : 1.0,
            "attribute" : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 20, 40, 41, 42, 43, 44 ],
            "level" : 10,
            "maxFC" : [ 3, 3, 3, 2 ],
            "poi" : [ 69, 211, 223, 197, 193, 418, 382, 383, 82, 32, 416, 417 ],
            "road" : [ 9, 10, 24, 25, 5, 13, 17 ],
            "shape" : 
            [
                1016,
                1015,
                1031,
                1027,
                1030,
                1151,
                1152,
                1005,
                1029,
                1026,
                1013,
                1003,
                1021,
                1002,
                1012
            ],
            "worldtexture" : [ false, false, true, true ]
        },

描述缩放级别为 10 时显示的内容。 在 POI 部分,您可以看到将呈现哪些 POI(按“重要性”顺序,从左到右)。

您需要将 id 198 添加到此枚举(198 是 "subway_entrace" 元素的 ID),如下所示:

"poi" : [ 69, 211, 223, 197, 193, 418, 382, 383, 82, 32, 416, 417, 198 ],

您还需要确保在应可见的缩放级别上对此 POI 进行了定义。例如,subway_entrance POI 仅具有从缩放级别 17 开始的定义:

       {
            "category" : "transport",
            "categoryid" : 9,
            "id" : "198.17",
            "name" : [ "subway_entrance", "subway_station" ],
            "point" : 
            {
                "fill" : 
                {
                    "color" : "AAAAAA",
                    "size" : 6.0
                },
                "icon" : 
                {
                    "spacing" : 0.0,
                    "texture" : 1126
                }
            },
            "priority" : 10,
            "text" : 
            {
                "title" : 
                {
                    "color" : "221c1590",
                    "fontid" : [ 3, 3, 3, 3 ],
                    "outlinecolor" : "f4f1ece4"
                }
            }
        },

        {
            "id" : "198.18"
        },

我们需要更改上述定义以从较低的缩放级别开始 - 即从 "id": "198.17" 更改为 "id": "198.10",

话虽这么说,渲染算法仍然必须决定在特定区域(道路/形状/POI)渲染什么,因此它可能选择不渲染该特定 POI(这是您无法真正控制的)。 即使在一个缩放级别(相同的定义)内,POI 也可能会出现或不出现(请参阅下面的屏幕截图,均为缩放级别 16)

所有地铁入口都可见: All subway entrances are visible 尽管相同的风格适用于整个缩放级别 16,但只有一些地铁入口可见 Only some subway entrances are visible, although the same style applies across the whole zoom level 16

关于skmaps - Skobbler 如何确定要显示的 POI 的优先级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32572108/

相关文章:

ios - 将 map 限制在特定范围内?

styling - 如何在 Skobbler 中编辑道路徽章?

java - 斯科布勒。 onAnnotationSelected 未调用,当我设置自己的注释时

ios - 选择注释时我可以禁用 map 平移吗

android - 错误 getRoutePointsForRoute

skmaps - 如何自定义位置图标?

skmaps - 如何更改 Skobbler 中的 POI 图标