首页 > 解决方案 > Azure Maps - 无法在没有浏览器警告的情况下从点属性设置图层选项“偏移”

问题描述

我正在尝试使用与地图上点(标记)位置相关的文本标签的偏移参数。

在我的应用程序中,用户将他们的偏好设置为 x 和 y 轴偏移值,当更改时,会更新地图点属性。然后,在更新点图层选项时,我需要使用数据驱动的表达式从每个地图点属性中提取值。

在此处输入图像描述

在此处输入图像描述

首次创建点时,点的偏移属性设置如下:

offset: [0, 0],

更新点层时,我尝试使用下面的表达式公式,但是如果没有在浏览器调试控制台中收到警告,它们都无法正常工作。

layers.pointLayer.setOptions({
    iconOptions: {
        offset: [ // ******NEEDS FIXING*******
            'case', // Use a conditional case expression.

            ['has', 'offset'],   // Check to see if feature has an "offset" property
            //["length", ["array", ["get", "offset"]]] // not working
            ['get', 'offset'],   // not working without browser warning
            //['get', ['literal', [0, 0]]], // not working
            //['literal', [0,0]], // working but not relevant, set locally, not pulling value from properties!!!

            'literal', [0, 0]]  // If it doesn't, default to array [0,0] (x & y-axis).
        ]
    }
})

如果在表达式中使用示例 ['get', 'offset'],虽然我实际上可以修改偏移量并且它在地图上工作,如屏幕截图所示,但我在浏览器调试控制台中收到以下警告:

在此处输入图像描述

我希望有一个无警告环境作为任何调试警告。在设置图层选项(第二个代码示例)时,我显然需要在数据驱动表达式中正确设置格式,但到目前为止我尝试过的所有语法都没有正常工作。

我也尝试在这里研究 MS 示例,但似乎他们实际上并没有从地图点属性中提取偏移值,而是直接从用户表单设置图层选项,除非我想实现全局更改,否则这是不好的对于属于该特定层的所有点。

标签: azure-maps

解决方案


推荐阅读