首页 > 解决方案 > 地图区域初始位置和缩放在 Oracle APEX 中不起作用

问题描述

我通过“区域”配置面板的“属性”选项卡中的“初始位置和缩放”配置使用以下代码设置默认地图缩放:

    select to_number(:P17_GPS_LATITUDE) as LAT,
    to_number(:P17_GPS_LONGITUDE) as LON,
    15 as ZOOM
    from DUAL

这是第一次正常工作,但是当我再次进入此页面时停止工作,直到我注销应用程序并再次登录。
我查看了可能是什么问题,发现第一次加载地图的脚本部分与之后加载地图时不同。第一次加载这是我能找到的(我只留下加载之间不同的部分):

    apex.jQuery('#localitzacioMapa_map_region')
    .spatialMap({ 
        "regionStaticId": "localitzacioMapa", 
        "resetMapPosition": true, 
        "initPosition": { "basedOnFeatures": false, "lon": 1.8246315941379123, "lat": 45.97590926950204, "zoom": 15, "getFromBrowser": false }
    })

之后,它将像以下代码一样加载,并且在我注销并再次登录之前不会修复:

    apex.jQuery('#localitzacioMapa_map_region')
    .spatialMap({ 
        "regionStaticId": "localitzacioMapa", 
        "initPosition": { "basedOnFeatures": false, "zoom": 0, "getFromBrowser": false }
    })

我的问题是未正确传递LATLON值,并且由于某种原因缩放值重置为 0。

标签: oracleoracle-apex

解决方案


它看起来像您的项目P17_GPS_LATITUDEP17_GPS_LONGITUDE并且未正确设置为您的默认值。请注意,default项目属性中的条目仅设置客户端默认值,在您的情况下可能没用。您需要正确设置source条目。

现在您应该知道,知道APEX 何时计算某些东西很重要。根据您的项目的位置,对于一个新的会话,您的项目最初是空的,首先您的地图被渲染,然后您的项目被设置为默认值。

为了绝对确保您的项目具有正确的默认值,当地图被渲染时,使用一个Before Header过程来检查您的项目是否为空,然后设置它们,如下所示:

在此处输入图像描述


推荐阅读