2.21 未封装功能的使用

前文也提到了,JS API对CooSDK绝大部分适用于B/S架构的功能进行了封装,但还有少部分特性因使用难度,封装难度、稳定性问题暂未接入。遇到这些功能开发者需要使用怎么办呢?

我们可以这么做,在CooMap对象中,保存有SDK原生API的3个组件对象,sdkCtrlmaptools,分别对应SDK控件对象,GetIMapMgrPtr返回的地图对象,GetIToolsCOMPtr返回的tool对象。再通过这三个对象,来调用相应的原生API。

假设ModelData类因为CooSDK原生API的功能更新迭代,临时加入了某配置参数“LoadSpeed”,而JS API因为版本问题并未及时更新,这时候开发者可以采用使用原生API的方式,来替换掉JS API关于模型加载的代码,比如代码封装在function A里

function A(){
    var modelData = new CooSDK.ModelData({
        url: xxxxxx
    });
}

相应的,根据原生API的写法,进行如下替换:

function A(){
    // 通过CooMap的map属性拿到原生API所需的map对象
    var map = cooMap.map;
    // 原生API代码
    var tlo = map.CreateLayerOptions("modelOpt");
    tlo.AddConfig("LayerOptionsName", "ModelLayerOptions");
    tlo.AddConfig("DataSourceTypeName", "c3ss");
    tlo.AddConfig("Compress", "true");
    // 新增的参数
    tlo.AddConfig("LoadSpeed", 5);
    // 数据路径
    tlo.AddConfig("Url", xxxxxx);
    // 模型图层的创建
    var modelData = map.CreateLayer("ModelLayer", tlo);
    // 模型图层添加至场景
    map.AddLayer(modelData);
}

通过以上处理,可以使用到SDK最新最全的功能。同时,请把此类需求上报至科澜公司技术中心SDK组,用于进一步深层次封装。

results matching ""

    No results matching ""