/**
* @content 要素编辑功能组件
* @author 2019-09-25
*/
import { NativeModules } from 'react-native';
let FE = NativeModules.JSFeatureEdit;
/**
* @class FeatureEdit
* @description 要素编辑
*/
export default class FeatureEdit {
/**
* 构造一个新的 FeatureEdit 对象。
* @memberOf FeatureEdit
* @param {VectorLayer} vectorLayer 矢量图层
* @returns {Promise.<FeatureEdit>} eatureEdit 对象。
*/
async createObjByVectorLayer(vectorLayer) {
try {
var { FeatureEditId } = await FE.createObjByVectorLayer(vectorLayer._MGVectorLayerId);
var featureEdit = new FeatureEdit();
featureEdit._MGFeatureEditId = FeatureEditId;
return featureEdit;
} catch (e) {
console.error(e);
}
}
/**
* 构造一个新的 FeatureEdit 对象。
* @memberOf FeatureEdit
* @param {IVectorCls} cls 矢量类对象基类
* @returns {Promise.<FeatureEdit>} eatureEdit 对象。
*/
async createObjByVectorCls(cls) {
try {
var { FeatureEditId } = await FE.createObjByVectorCls(cls._MGVectorClsId);
var featureEdit = new FeatureEdit();
featureEdit._MGFeatureEditId = FeatureEditId;
return featureEdit;
} catch (e) {
console.error(e);
}
}
/**
* 构造一个新的 FeatureEdit 对象。
* @memberOf FeatureEdit
* @param {String} strIGServerBaseURL 基地址
* @param {String} strDocName 地图文档名
* @param {int} mapID 地图ID
* @param {int} layerID 图层 ID
* @returns {Promise.<FeatureEdit>} eatureEdit 对象。
*/
async createObjByIGSDoc(strIGServerBaseURL, strDocName, mapID, layerID) {
try {
var { FeatureEditId } = await FE.createObjByIGSDoc(
strIGServerBaseURL,
strDocName,
mapID,
layerID
);
var featureEdit = new FeatureEdit();
featureEdit._MGFeatureEditId = FeatureEditId;
return featureEdit;
} catch (e) {
console.error(e);
}
}
/**
* 构造一个新的 FeatureEdit 对象。
* @memberOf FeatureEdit
* @param {String} strIGServerBaseURL 服务基地址
* @param {String} strDataURL 数据地址
* @returns {Promise.<FeatureEdit>} eatureEdit 对象。
*/
async createObjByIGSData(strIGServerBaseURL, strDataURL) {
try {
var { FeatureEditId } = await FE.createObjByIGSData(
strIGServerBaseURL,
strDataURL
);
var featureEdit = new FeatureEdit();
featureEdit._MGFeatureEditId = FeatureEditId;
return featureEdit;
} catch (e) {
console.error(e);
}
}
/**
* 添加要素
* @memberOf FeatureEdit
* @param {Feature} feature 简单要素对象
* @return {Promise.<int>}添加成功后返回 要素ID
*/
async append(feature) {
try {
return await FE.append(this._MGFeatureEditId, feature._MGFeatureId);
} catch (e) {
console.error(e);
}
}
/**
* 添加要素
* @memberOf FeatureEdit
* @param {List<Feature>} featureArray 简单要素对象
* @return {Promise.<int>} 成功:>0;失败:<=0
*/
async appendFeatures(featureArray) {
try {
return await FE.appendFeatures(this._MGFeatureEditId, featureArray);
} catch (e) {
console.error(e);
}
}
/**
* 删除要素
* @memberOf FeatureEdit
* @param {int} objID 要素ID
* @return {Promise.<int>} 成功:>0;失败:<=0
*/
async delete(objID) {
try {
return await FE.delete(this._MGFeatureEditId, objID);
} catch (e) {
console.error(e);
}
}
/**
* 删除一组简单要素
* @memberOf FeatureEdit
* @param {long[]} objIDArray 简单要素ID数组
* @return {Promise.<int>} 成功:>0;失败:<=0
*/
async deleteobjIDs(objIDArray) {
try {
return await FE.deleteObjIDs(this._MGFeatureEditId, objIDArray);
} catch (e) {
console.error(e);
}
}
/**
* 更新要素
* @memberOf FeatureEdit
* @param {int} objID 要素ID
* @param {Feature} feature 要素对象
* @return {Promise.<int>} 成功:>0;失败:<=0
*/
async update(objID, feature) {
try {
return await FE.update(
this._MGFeatureEditId,
objID,
feature._MGFeatureId
);
} catch (e) {
console.error(e);
}
}
/**
* 更新要素
* @memberOf FeatureEdit
* @param {List<Feature>} features 要素数据集
* @return {Promise.<int>} 成功:>0;失败:<=0
*/
async updateFeatures(featureArray) {
try {
return await FE.updateFeatures(this._MGFeatureEditId, featureArray);
} catch (e) {
console.error(e);
}
}
/**
* 创建地理数据类
* @memberOf FeatureEdit
* @param {XClsType} clsType 地理类型
* @param {String} name 名称
* @param {GeomType} geomType 几何类型
* @param {String} srefName 空间参考系名称
* @param {String} dsName 数据集名称
* @param {Fields} flds 字段属性
* @return {Promise.<String>} 成功:返回参数返回创建的要素类的GDBP地址;失败:String等于null
*/
async createClsBySRef(clsType, name, geomType, srefName, dsName, flds) {
try {
return await FE.createClsBySRef(
this._MGFeatureEditId,
clsType,
name,
geomType,
srefName,
dsName,
flds._MGFieldsId
);
} catch (e) {
console.error(e);
}
}
/**
* 创建地理数据类
* @memberOf FeatureEdit
* @param {XClsType} clsType 地理类型
* @param {String} name 名称
* @param {GeomType} geomType 几何类型
* @param {Fields} flds 字段属性
* @return {Promise.<String>} 成功:返回参数返回创建的要素类的GDBP地址;失败:String等于null
*/
async createCls(clsType, name, geomType, flds) {
try {
return await FE.createCls(
this._MGFeatureEditId,
clsType,
name,
geomType,
flds._MGFieldsId
);
} catch (e) {
console.error(e);
}
}
/**
* 删除地理数据类
* @memberOf FeatureEdit
* @param {XClsType} clsType 地理类型
* @param {String} name 名称
* @return {Promise.<int>} 成功:>0;失败:<=0
*/
async deleteCls(clsType, name) {
try {
return await FE.deleteCls(this._MGFeatureEditId, clsType, name);
} catch (e) {
console.error(e);
}
}
}