Example #1
0
 def fromStr(self, attrs):
     obj = None
     if AIUtils.isStr(attrs):
         attrs = AIUtils.str2dict(attrs)
         obj = self
         if AIUtils.isDict(attrs):
             for key in attrs:
                 func = getattr(obj, 'set' + AIStrUtils.toUpperF(key))
                 if AIUtils.isFunc(func):
                     apply(func, [attrs[key]])
     else:
         raise Exception('input parameter type not correct!')
     
     return obj
Example #2
0
 def toStr(self, obj):
     result = None
     if not AIUtils.isEmpty(obj):
         attrs = dir(obj)
         result = []
         for attr in attrs:
             if attr.startswith('get'):
                 prop = AIStrUtils.toLowerF(attr[3:])
                 func = getattr(obj, attr)
                 value = apply(func, [])
                 # 判断类型,不同的字符串转换方式
                 propValue = AIUtils.list2str(value) if AIUtils.isList(value) \
                 else AIUtils.dict2str(value) if AIUtils.isDict(value) \
                 else ('\'' + AIUtils.toStr(value) + '\'') if AIUtils.isStr(value) \
                 else AIUtils.toStr(value)
                 result.append('\'' + prop + '\':' + propValue + '')
         result = '{' + ','.join(result) + '}'
     else:
         raise Exception('input parameter type not correct!')
     
     return result
Example #3
0
 fcDict = AIUtils.str2dict(param2)
 keys = fcDict.keys()
 fcName = None if 'name' not in keys else fcDict['name']
 fcAlias = None if 'alias' not in keys else fcDict['alias']
 fcFtype = None if 'ftype' not in keys else fcDict['ftype']
 fcWkid = None if 'wkid' not in keys else fcDict['wkid']
 fcFds = None if 'fds' not in keys else fcDict['fds']
 fcFields = None if 'fields' not in keys else fcDict['fields']
 
 try:
     if not AIUtils.isEmpty(fcName):
         fcName = fcName if ('.' in fcName) else fcName if AIUtils.isEmpty(sdeUsername) else (sdeUsername + '.') + fcName
         fcFtype = 'All' if AIUtils.isEmpty(fcFtype) else fcFtype
         # 要素集名称
         fdsName = None
         if AIUtils.isDict(fcFds) and not AIUtils.isEmpty(fcFds['name']):
             fdsName = fcFds['name']
             fdsName = fdsName if ('.' in fdsName) else fdsName if AIUtils.isEmpty(sdeUsername) else (sdeUsername + '.') + fdsName
             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 + '查询失败')
         
Example #4
0
 param2 = param2.replace('true', 'True')
 param2 = param2.replace('false', 'False')
 fcDict = AIUtils.str2dict(param2)
 keys = fcDict.keys()
 fcName = None if 'name' not in keys else fcDict['name']
 fcAlias = None if 'alias' not in keys else fcDict['alias']
 fcFtype = None if 'ftype' not in keys else fcDict['ftype']
 fcWkid = None if 'wkid' not in keys else fcDict['wkid']
 fcFds = None if 'fds' not in keys else fcDict['fds']
 fcFields = None if 'fields' not in keys else fcDict['fields']
 
 try:
     if not AIUtils.isEmpty(fcName) and not AIUtils.isEmpty(fcFtype):
         # 要素集名称
         fdsName = None
         if AIUtils.isDict(fcFds) and 'name' in fcFds.keys() and not AIUtils.isEmpty(fcFds['name']):
             fdsName = fcFds['name']
             fdsName = fdsName if ('.' in fdsName) else fdsName if AIUtils.isEmpty(sdeUsername) else (sdeUsername + '.') + fdsName
         wksName = sdeOutFullName if AIUtils.isEmpty(fdsName) else os.path.join(sdeOutFullName, fdsName).replace('\\', '/')
         fcWkid = 4326 if not AIUtils.isInt(fcWkid) else fcWkid
         # 创建要素类
         arcpy.CreateFeatureclass_management(wksName, fcName, fcFtype, None, "DISABLED", "DISABLED", arcpy.SpatialReference(fcWkid))
         # 更改别名
         if not AIUtils.isEmpty(fcAlias):
             arcpy.AlterAliasName(fcName, fcAlias)
         # 添加字段(排除保留字段)
         if AIUtils.isList(fcFields):
             for field in fcFields:
                 keys = field.keys()
                 fldName = AIStrUtils.toUpper(field['name'])
                 if not AIStrUtils.isEqual(fldName, 'OBJECTID') and \