Index

FengMap JavaScript SDK v2.3.0 兼容性指南

在 v2.3.0 版本中,我们优化了底层引擎的部分逻辑和代码结构,某些接口的使用方式将会发生改变,针对新的更新,您的部分旧代码可能需要更新。

1. mapClickNode 鼠标拾取事件变更。

在 v2.3.0及以上 版本中,mapClickNode 事件的结构发生了改变,如果不更新代码,那么 v2.3.0及以上 版本中使用旧的接口调用方式可能会引发异常 。在 v2.3.0及以上 版本中,通过事件拾取的对象都包含在了 event.target 对象中,如果要获取鼠标点击事件拾取对象的属性,请从 event.target 获取。event.targt 对象说明

2. 统一地图比例尺级别

在 v2.3.0及以上 版本中地图比例尺级别范围取值从1到29级,默认显示的比例尺级别为20,通过修改defaultMapScaleLevel的值调整地图初始化的显示级别。

3. 地图查询器

在 v2.3.0及以上 版本中,将使用新的地图查询器 FMSearchAnalyser 进行地图要素的查询。使用查询请求构造器 FMSearchRequest 构造查询条件。

     var searchAnalyser = new fengmap.FMSearchAnalyser(map);
     var searchRequest = new fengmap.FMSearchRequest();
     searchRequest.keyword = '出入口';   //属性调用
     var sortRes = [];
     searchAnalyser.query(searchRequest, function (result) {
        sortRes = result;
        var oneNode = result[0].target; //从target 结点下获取fengmap.FMNode 对象。
     });

4. 地图控件布局

在 v2.3.0及以上 版本中,地图控件布局位置不再内置默认的偏移量,用户需要手动添加位置偏移来调整控件的位置。

    var scrollFloorCtlOpt = new fengmap.ControlOptions({
        //默认在右上角 
        position: fengmap.controlPositon.RIGHT_TOP, //右上角
        //默认显示楼层的个数
        showBtnCount: 3,
        //初始是否是多层显示,默认单层显示false
        allLayer: false,
        //是否显示多层/单层切换按钮
        needAllLayerBtn: true,
        //位置x,y的偏移量
        offset: {
            x: -20, //向左偏移
            y: 20   //向下偏移
        }
    });

5. 控件相关对象类更名

在 v2.3.0及以上 版本中,我们对部分类对象进行了更名,使用旧版本的类型依然能够兼容,不过我们还是强烈建议您在开发时使用新的对象名称。

对象 旧版本 v2.3.0及以上
控件配置类 fengmap.controlOptions fengmap.FMControlOptions
控件布局位置枚举类 fengmap.controlPositon fengmap.FMControlPosition
楼层切换控件(滚动列表列表) fengmap.scrollGroupsControl fengmap.FMScrollGroupsControl
地图缩放控件 fengmap.zoomControl fengmap.FMZoomControl
整合工具控件 fengmap.toolControl fengmap.FMToolControl
楼层切换控件(常规按钮列表) fengmap.buttonGroupsControl fengmap.FMButtonGroupsControl

6. 分楼层加载地图切片数据

在 v2.3.0及以上 版本中,我们对数据的组织结构进行了优化,可通过在 FMMap 的构造参数中,通过设置 tile 属性,开启切片方式加载地图。

注意:切片方式加载地图只适用于从您的本地服务器加载地图文件,不适用于从蜂鸟云在线加载地图的方式。


    var mapOptions = {
        container: document.getElementById('fengMap'),
        appName: '',
        key: '',
        tile = true //开启切片加载
    }

    map = new fengmap.FMMap(mapOptions);

7. 废弃 FMMap.scaleLevel 属性

在 v2.3.0及以上 版本中,通过 FMMap.mapScaleLevel 修改地图级别。

8. 通过使用 selected 属性设置地图 3D 对象的高亮

9. 废弃 FMap.storeFlash() 方法

在 v2.3.0及以上 版本中,要使模型高亮并闪烁,需要先通过鼠标点击事件或者搜索器获取到地图 3D 对象,通过 FMModel.flash() 方法,设置该对象闪烁。

10. 地图对象的eName 属性更名

旧版本 v2.3.0及以上 版本
eName ename

11. 新增覆盖物图层避让方法和单个元素是否避让的控制,如针对FMImageMarkerLayer的避让方法avoid 和FMImageMarker的避让方法avoid

12. 废弃模型对象 fengmap.FMStoreModel 对象,使用 fengmap.FMModel代替。

13. 重新定义FMMap.moveTo方法。

在v2.3.0及以上 版本如果groupID变化时会自动切换焦点层,在moveTo动画的过程中避免使用焦点层设置(FMMap.focusGroupID)显示楼层设置等方法 会引起地图显示视角错误的问题。

14. 重新定义覆盖物alwaysShow方法

在v2.3.0及以上 版本设置alwaysShow会始终保持元素最后渲染,不受所在楼层及所在图层隐藏显示的影响。如果需要调用alwaysShow需要用户在楼层或图层不显示时使用show属性控制元素的显示隐藏。需要元素强制显示的情况下,建议使用该方法。


更多内容,请访问 蜂鸟云平台