2.20 初始化加载

通常在项目开发中,会遇到三维地图需要初始化加载数据及功能的情况,在JS API中,常规写法不被允许,可能会引起控件异常,比如在页面onload函数中这么写,可能会引起控件异常或者页面崩溃:

// 创建CooMap对象
var cooMap = new CooSDK.CooMap("map");
// 创建ModelData对象
var modelData = new CooSDK.ModelData({
    url: path
    isLocate: true
});

深层次的原因通常与IE的初始化运行机制有关,在原生API中,往往通过setTimeout函数,对加载数据的函数,做延时加载处理。

但在JS API中,做了更高层级的封装,来避免开发者对此种操作产生困扰。您有两种方式来实现初始化加载效果。

第一种方式

您可在CooMap的API接口说明中,发现这个属性:initCallback,该属性支持传入用户自定义的函数,如下:

// 需在new CooSDK.CooMap之前声明
var initFunc = function(){
    //do something
}
var cooMap = new CooSDK.CooMap("map", {
    delay: 1,
    initCallback: initFunc
});

第二种方式

第二种方式则是常规的setTimeout做法,在地图初始化代码后紧跟着设置,如:

var cooMap = new CooSDK.CooMap("map");
// 注意,在非IE浏览器下,这里的延时不可设置过小,通常在1000-2000ms之间,否则极易发生初始化失败现象。
setTimeout("initFunc()", 1000);

var initFunc = function(){
    //do something
}

通常强烈建议使用第一种方式来进行初始化加载操作。第二种方式不稳定,不推荐

results matching ""

    No results matching ""