Example #1
0
            sdeServer = sdeInfos[0]
            sdeInstance = sdeInfos[1]
            sdeUsername = sdeInfos[2]
            sdePassword = sdeInfos[3]
            
            try:
                sde = AISde(os.path.join(rootPath, 'resources', 'sde'), wksId, sdeServer + '/' + sdeInstance, sdeUsername, sdePassword)
                sde.connect()
            except Exception as e:            
                logger.info(unicode(e.message).encode("utf-8"))
                logger.info('数据库服务器' + sdeServer + '上空间数据库' + sdeInstance + '实例连接失败') 
            logger.info('数据库服务器' + sdeServer + '上空间数据库' + sdeInstance + '实例连接成功')             
            wks = AIWks(sde.getSdeOutFullName(), sde.getSdeUserName())
            logger.info('工作空间' + sde.getSdeOutFullName() + '初始化成功')
            # 查询要素集
            param2 = sys.argv[2]
            param2 = param2.replace('null', '\'\'')
#             fdsDict = AIUtils.str2dict(param2)
#             name = fdsDict['name']
            fds = AIFds()
            fds = fds.fromStr(param2)
            try:
                fds = wks.queryFds(fds)
                qr = AIUtils.dict2json(AIUtils.str2dict(str(fds)))
                qr = '' if not qr else qr
            except Exception as e:            
                logger.info(unicode(e.message).encode("utf-8"))
                logger.info('要素集' + fds.getName() + '查询失败') 
    print qr
    
    
Example #2
0
                     try:
                         if not AIUtils.isEmpty(fdsName):
                             fdsName = fdsName if ('.' in fdsName) else fdsName if AIUtils.isEmpty(sdeUsername) else (sdeUsername + '.') + fdsName
                             datasets = arcpy.ListDatasets(fdsName, 'Feature')
                             if len(datasets) > 0 and not AIUtils.isEmpty(datasets[0]):
                                 dataset = datasets[0]
                                 desc = arcpy.Describe(dataset)
                                 sr = desc.spatialReference
                                 fcFds = {'name' : AIUtils.unicode2utf8(desc.name), 'wkid' : None if AIUtils.isEmpty(sr) else sr.factoryCode}
                     except Exception as e:        
                         logger.info(unicode(e.message).encode("utf-8"))
                         logger.info('要素集' + fdsName + '查询失败')
                 
                 featureclasses = arcpy.ListFeatureClasses(fcName, fcFtype, fdsName)
                 if len(featureclasses) > 0 and not AIUtils.isEmpty(featureclasses[0]):
                     featureclass = featureclasses[0]
                     desc = arcpy.Describe(featureclass)
                     flds = []
                     for field in desc.fields:
                         flds.append({'name' : AIUtils.unicode2utf8(field.name), 'alias' : AIUtils.unicode2utf8(field.aliasName), \
                                      'ftype' : AIUtils.unicode2utf8(field.type), 'scale' : field.scale, \
                                      'length' : field.length, 'isNullable' : field.isNullable})
                     
                     qr = {'name' : AIUtils.unicode2utf8(desc.name), 'alias' : AIUtils.unicode2utf8(desc.aliasName), \
                           'ftype' : AIUtils.unicode2utf8(desc.shapeType), 'wkid' : None if AIUtils.isEmpty(desc.spatialReference) else desc.spatialReference.factoryCode, \
                           'fds' : fcFds, 'fields' : flds}
                     qr = AIUtils.dict2json(qr)
         except Exception as e:            
             logger.info(unicode(e.message).encode("utf-8"))
             logger.info('要素类' + fcName + ' 查询失败')
 print qr