import {CatalogService} from "./CatalogService";
import {IgsServiceBase} from "../../baseserver/IServiceBase";
import {ChineseToUtf8} from '../../common/Util';
/**
* @author 基础平台/产品2部 龚跃健
* @class module:目录服务.GDBInfo
* @classdesc 地理数据库信息类
* @description Zondy.Catalog.GDBInfo
* @extends Zondy.Catalog.CatalogService
* @param option - {Object} 属性键值对,数据库属性字段。<br>
* @param {String} [option.serverName = null] 服务器名称
* @param {String} [option.gdbName = null] 数据库名称
* @param {String} [option.dsName = null] 要素数据集名
* @param {String} [option.rcsName = null] 栅格数据集名
* @param {String} [option.User = null] 数据库用户名
* @param {String} [option.Password = null] 数据库密码
* @param {Boolean} [option.containAll = true] 是否包含所有
*/
class GDBInfo extends CatalogService {
constructor(option) {
var options = option || {};
super(options);
/**
* @private
* @member Zondy.Catalog.GDBInfo.prototype.serverName
* @type {String}
* @description 服务器名称
* @default null
*/
this.serverName = options.serverName !== undefined ? options.serverName : null;
/**
* @private
* @member Zondy.Catalog.GDBInfo.prototype.gdbName
* @type {String}
* @description 数据库名称
* @default null
*/
this.gdbName = options.gdbName !== undefined ? options.gdbName : null;
/**
* @private
* @member Zondy.Catalog.GDBInfo.prototype.dsName
* @type {String}
* @description 要素数据集名
* @default 0
*/
this.dsName = options.dsName !== undefined ? options.dsName : null;
/**
* @private
* @member Zondy.Catalog.GDBInfo.prototype.rcsName
* @type {String}
* @description 栅格数据集名
* @default null
*/
this.rcsName = options.rcsName !== undefined ? options.rcsName : null;
/**
* @private
* @member Zondy.Catalog.GDBInfo.prototype.User
* @type {String}
* @description 数据库用户名
* @default null
*/
this.User = options.User !== undefined ? options.User : null;
/**
* @private
* @member Zondy.Catalog.GDBInfo.prototype.Password
* @type {String}
* @description 数据库密码
* @default 0
*/
this.Password = options.Password !== undefined ? options.Password : null;
/**
* @private
* @member Zondy.Catalog.GDBInfo.prototype.containAll
* @type {Boolean}
* @description 是否包含所有
* @default 0
*/
this.containAll = options.containAll !== undefined ? options.containAll : true;
}
/**
* @description 获取数据源列表
* @function Zondy.Catalog.GDBInfo.prototype.getServerList
* @param onSuccess - {Function} 成功回调函数。
* @param onError - {Function} 失败回调函数。
* @example
var CatalogServer = new Zondy.Catalog.GDBInfo({
//IGServer所在地址
ip: "develop.smaryun.com",
//IGServer请求端口
port: "6163",
});
CatalogServer.getServerList(function (res) {
console.log(res);
},function (error) {
console.log(error);
});
*/
getServerList(onSuccess, onError) {
var me = this;
me.partUrl = "datasource?f=json";
var url = me.getFullUrl();
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
service.processAsync();
}
/**
* @description 获取指定数据源下数据库列表
* @function Zondy.Catalog.GDBInfo.prototype.getGDBList
* @param onSuccess - {Function} 成功回调函数。
* @param onError - {Function} 失败回调函数。
* @example
var CatalogServer = new Zondy.Catalog.GDBInfo({
//数据源名称
serverName: 'mapgislocal',
//IGServer所在地址
ip: "develop.smaryun.com",
//IGServer请求端口
port: "6163"
});
CatalogServer.getGDBList(function (res) {
console.log(res);
},function (error) {
console.log(error);
});
*/
getGDBList(onSuccess, onError) {
var me = this;
if (me.serverName.toLowerCase() === "mapgislocal") {
me.partUrl = "datasource/" + me.serverName + "?f=json";
}
else {
me.partUrl = "datasource/" + me.serverName + "?user=" + me.User + "&psw=" + me.Password + "&f=json";
}
var url = me.getFullUrl();
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
service.processAsync();
}
/**
* @description 获取GDB下要素集列表
* @function Zondy.Catalog.GDBInfo.prototype.getDsList
* @param onSuccess - {Function} 成功回调函数。
* @param onError - {Function} 失败回调函数。
* @example
var CatalogServe = new Zondy.Catalog.GDBInfo({
//数据源名称
serverName: 'mapgislocal',
//IGServer所在地址
ip: "develop.smaryun.com",
//IGServer请求端口
port: "6163",
//数据库名称
gdbName: '示例数据'
});
CatalogServe.getDsList(function (res) {
console.log(res);
},function (error) {
console.log(error);
});
*/
getDsList(onSuccess, onError) {
var me = this;
if (me.serverName.toLowerCase() === "mapgislocal") {
me.partUrl = "datasource/" + me.serverName + "/" + me.gdbName + "/ds?containAll=" + me.containAll + "&f=json";
}
else {
me.partUrl = "datasource/" + me.serverName + "/" + me.gdbName + "/ds?user=" + me.User + "&psw=" + me.Password + "&containAll=" + me.containAll + "&f=json";
}
var url = me.getFullUrl();
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
service.processAsync();
}
/**
* @description 获取GDB下所有栅格目录列表
* @function Zondy.Catalog.GDBInfo.prototype.getRcsList
* @param onSuccess - {Function} 成功回调函数。
* @param onError - {Function} 失败回调函数。
* @example
var CatalogServe = new Zondy.Catalog.GDBInfo({
//数据源名称
serverName: 'mapgislocal',
//IGServer所在地址
ip: "develop.smaryun.com",
//IGServer请求端口
port: "6163",
//数据库名称
gdbName: '示例数据'
});
CatalogServe.getRcsList(function (res) {
console.log(res);
},function (error) {
console.log(error);
});
*/
getRcsList(onSuccess, onError) {
var me = this;
if (me.serverName.toLowerCase() === "mapgislocal") {
me.partUrl = "datasource/" + me.serverName + "/" + me.gdbName + "/rcs?f=json";
}
else {
me.partUrl = "datasource/" + me.serverName + "/" + me.gdbName + "/rcs?user=" + me.User + "&psw=" + me.Password + "&containAll=" + me.containAll + "&f=json";
}
var url = me.getFullUrl();
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
service.processAsync();
}
/**
* @description 获取参照系列表
* @function Zondy.Catalog.GDBInfo.prototype.getProjectList
* @param onSuccess - {Function} 成功回调函数。
* @param onError - {Function} 失败回调函数。
* @example
var CatalogServe = new Zondy.Catalog.GDBInfo({
//数据源名称
serverName: 'mapgislocal',
//IGServer所在地址
ip: "develop.smaryun.com",
//IGServer请求端口
port: "6163",
//数据库名称
gdbName: '示例数据'
});
CatalogServe.getProjectList(function (res) {
console.log(res);
},function (error) {
console.log(error);
});
*/
getProjectList(onSuccess, onError) {
var me = this;
me.partUrl = "datasource/" + me.serverName + "/" + me.gdbName + "?f=json";
var url = me.getFullUrl();
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
service.processAsync();
}
/**
* @description 获取参照系信息
* @function Zondy.Catalog.GDBInfo.prototype.getProjectInfo
* @param srefID -{Integer}空间参照系ID。<br>
* @param onSuccess - {Function} 成功回调函数。
* @param onError - {Function} 失败回调函数。
* @example
var CatalogServe = new Zondy.Catalog.GDBInfo({
//数据源名称
serverName: 'mapgislocal',
//IGServer所在地址
ip: "develop.smaryun.com",
//IGServer请求端口
port: "6163",
//数据库名称
gdbName: '示例数据'
});
CatalogServe.getProjectInfo(5,function (res) {
console.log(res);
},function (error) {
console.log(error);
});
*/
getProjectInfo(srefID, onSuccess, onError) {
var me = this;
me.partUrl = "datasource/" + me.serverName + "/" + me.gdbName + "/" + srefID + "?f=json";
var url = me.getFullUrl();
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
service.processAsync();
}
/**
* @description 附加地理数据库。在附加前,数据源内应不包含将附加的数据库
* @function Zondy.Catalog.GDBInfo.prototype.AttachGDB
* @param path -{String}数据库的绝对路径。
* @param onSuccess - {Function} 成功回调函数。
* @param onError - {Function} 失败回调函数。
* @example
var CatalogServer = new Zondy.Catalog.GDBInfo({
//数据源名称
serverName: 'mapgislocal',
//IGServer所在地址
ip: "localhost",
//IGServer请求端口
port: "6163",
//设置数据库名称
gdbName: '专题图数据'
});
CatalogServer.AttachGDB('D:/20180629MapGIS 10/Sample/专题图数据.hdf', function (res) {
console.log(res);
},function (error) {
console.log(error);
});
*/
AttachGDB(path, onSuccess, onError) {
var me = this;
if (me.serverName === null || me.gdbName === null || path === null) {
return;
}
me.partUrl = "gdb/attach/" + me.gdbName + "?gdbSvrName=" + me.serverName + "&path=" + path + "&f=json";
if (me.User !== null && me.Password !== null) {
me.partUrl += "&gdbUserName=" + me.User + "&gdbPwd=" + me.Password;
}
var url = me.getFullUrl();
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
service.processAsync();
}
/**
* @description 注销地理数据库。如果将要被注销的数据库正在被使用,则会注销失败
* @function Zondy.Catalog.GDBInfo.prototype.DetachGDB
* @param onSuccess - {Function} 成功回调函数。
* @param onError - {Function} 失败回调函数。
* @example
var CatalogServer = new Zondy.Catalog.GDBInfo({
//数据源名称
serverName: 'mapgislocal',
//IGServer所在地址
ip: "localhost",
//IGServer请求端口
port: "6163",
//设置数据库名称
gdbName: '专题图数据'
});
CatalogServer.DetachGDB(function (res) {
console.log(res);
},function (error) {
console.log(error);
});
*/
DetachGDB(onSuccess, onError) {
var me = this;
if (me.serverName === null || me.gdbName === null) {
return;
}
me.partUrl = "gdb/detach/" + me.gdbName + "?gdbSvrName=" + me.serverName;
if (me.User !== null && me.Password !== null) {
me.partUrl += "&gdbUserName=" + me.User + "&gdbPwd=" + me.Password;
}
var url = me.getFullUrl();
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
service.processAsync();
}
/**
* @description 创建地理数据库,新建的数据库会保存到本地,同时附加到数据源
* @function Zondy.Catalog.GDBInfo.prototype.CreateGDB
* @param path -{String}数据库的绝对路径(本地数据源,即MapGISLocal,必须设置,仅包含创建数据库路径,不包含数据库名称)。<br>
* @param onSuccess - {Function} 成功回调函数。
* @param onError - {Function} 失败回调函数。
* @example
var CatalogServer = new Zondy.Catalog.GDBInfo({
//数据源名称
serverName: 'mapgislocal',
//IGServer所在地址
ip: "localhost",
//IGServer请求端口
port: "6163",
//设置数据库名称
gdbName: '专题图数据'
});
CatalogServer.CreateGDB('D:/20180629MapGIS 10/Sample/专题图数据.hdf', function (res) {
console.log(res);
},function (error) {
console.log(error);
});
*/
CreateGDB(path, onSuccess, onError) {
var me = this;
if (me.serverName === null || me.gdbName === null) {
return;
}
if (me.serverName.toLowerCase() === 'mapgislocal' && path === null) {
return;
}
me.partUrl = "gdb/creat/" + me.gdbName + "?gdbSvrName=" + me.serverName + "&path=" + path + "&f=json";
if (me.User !== null && me.Password !== null) {
me.partUrl += "&gdbUserName=" + me.User + "&gdbPwd=" + me.Password;
}
var url = me.getFullUrl();
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
service.processAsync();
}
/**
* @description 删除地理数据库
* @function Zondy.Catalog.GDBInfo.prototype.DeleteGDB
* @param onSuccess - {Function} 成功回调函数。
* @param onError - {Function} 失败回调函数。
* @example
var CatalogServer = new Zondy.Catalog.GDBInfo({
//数据源名称
serverName: 'mapgislocal',
//IGServer所在地址
ip: "localhost",
//IGServer请求端口
port: "6163",
//设置数据库名称
gdbName: '专题图数据'
});
CatalogServer.DeleteGDB(function (res) {
console.log(res);
},function (error) {
console.log(error);
});
*/
DeleteGDB(onSuccess, onError) {
var me = this;
if (me.serverName === null || me.gdbName === null) {
return;
}
me.partUrl = "gdb/delete/" + me.gdbName + "?gdbSvrName=" + me.serverName;
if (me.User !== null && me.Password !== null) {
me.partUrl += "&gdbUserName=" + me.User + "&gdbPwd=" + me.Password;
}
var url = me.getFullUrl();
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
service.processAsync();
}
}
export {GDBInfo};
Zondy.Catalog.GDBInfo = GDBInfo;