定位

def VectorFile2UDB(self):
        logging.info("初始化组件环境...")
        SuperMap.Init()
        self.SearchPath()
        datasourceAlias = ""
        datasources = {}
        datasetNames = {}
        engineType = 'sceUDB'

        logging.info("开始导入数据...")
        if len(self.fileList) > 0:
            for parent,files in self.fileList:
                if "None" == self.datasourceName:
                    L = parent.split("\\")
                    datasourceAlias = L[len(L) - 1]
                else:
                    datasourceAlias = self.datasourceName
                #创建数据源
                if not datasources.has_key(datasourceAlias):
                    if SuperMap.OpenDataSource(self.udbPath + '\\' + datasourceAlias + '.udb',"","",engineType,datasourceAlias) == 0:
                        isCreate = SuperMap.CreateDataSource(self.udbPath + "\\" + datasourceAlias,"","",engineType,datasourceAlias)
                        if isCreate == 1:
                            logging.info("创建数据源:[" + self.udbPath + '\\' + datasourceAlias + '.udb ' + "]成功。")
                        else:
                            logging.error("创建数据源:[" + self.udbPath + '\\' + datasourceAlias + '.udb ' + "]失败。")
                            SuperMap.Exit()
                            return
                    datasources[datasourceAlias] = datasourceAlias
                else:
                    SuperMap.CloseDataSource(datasourceAlias)
                    if SuperMap.OpenDataSource(self.udbPath + '\\' + datasourceAlias + '.udb',"","",engineType,datasourceAlias) == 0:
                        logging.info("打开数据源:[" + datasourceAlias + "]失败。")
                        SuperMap.Exit()
                        return
                #记录当前文件是否导入成功
                result = 0
                #导入shp数据
                for file in files:
                    fileName = pth.split(file)[1]
                    fileName = pth.splitext(fileName)[0]  # 获取不带扩展名的文件名
                    logging.info("开始导入数据:[" + file + "]...")
                    isImport = SuperMap.ImportVectorFile(datasourceAlias,fileName, self.encodeType,self.fileType, file, "GIS")
                    if isImport == 1:
                        logging.info("导入数据:[" + file + "]到数据源:[" + datasourceAlias + "]成功。")
                        self.importDataCount += 1
                    else:
                        logging.info("导入数据:[" + file + "]到数据源:[" + datasourceAlias + "]失败。")
                SuperMap.CloseDataSource(datasourceAlias)
        logging.info("导入操作完成。")
        logging.info("共有 " + str(self.importDataCount) + "个数据被成功导入为Udb格式。")
        SuperMap.Exit()




<pre name="code" class="html">#测试数据源以文件夹名
    # objImport = VectorFileToUDB(r"E:\Data\数据转换测试数据\SHP",r"E:\Data\数据转换测试数据\SHP" ,"fileSHP","None","encNONE")
    objImport = VectorFileToUDB(r"\home\jeffrylee\cloudgistraining\shp",r"\home\jeffrylee\cloudgistraining\shp" ,"fileSHP","None","encNONE")
    logPath = r'\home\jeffrylee\cloudgistraining\log.log'
    logging.basicConfig(filename=logPath,level=logging.DEBUG,format='%(asctime)s %(levelname)-8s %(message)s')
    #定义一个Handler打印INFO及以上级别的日志到sys.stdout
    #可以同时输出日志信息到文本文件和控制台,在C#程序中调用的时候可以获取到控制台程序输出
    console = logging.StreamHandler(sys.stdout)
    console.setLevel(logging.INFO)
    #日志信息开团加info:是为了和SuperMap组件输出的日志信息区别
    console.setFormatter(logging.Formatter('info:' '%(message)s'))
    logging.getLogger('').addHandler(console)
    objImport.VectorFile2UDB()


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值