ztt11.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. # -*- coding: utf-8 -*-
  2. import os
  3. import sys
  4. import log
  5. import arcpy
  6. #import utils
  7. import appconfig
  8. #import arcpy
  9. import arcpy.mapping as mp
  10. from db.postgresql import Postgresql
  11. reload(sys)
  12. class Ztt:
  13. def __init__(self, data):
  14. self.db = Postgresql(appconfig.DB_CONN)
  15. self.bsm = data["bsm"]
  16. self.mxd = data["mxd"]
  17. self.jpg = data["jpg"]
  18. self.xzqdm = data["xzqdm"]
  19. self.task()
  20. def task(self):
  21. '''加载数据-任务'''
  22. sql = "select a.BSM,A.ZBT,A.FBT,A.BZDW,A.BZSJ,A.ZTSJ,A.ZTDW,B.MBMC,B.MBWJ from T_YZT_ZTT a JOIN T_YZT_ZTTMB b on a.MBBSM = b.BSM where a.BSM='{0}'".format(self.bsm)
  23. tasks = self.db.query(sql)
  24. if len(tasks) == 0 :
  25. self.fxlog(self.bsm, "error", "任务标识错误[{0}]".format(self.bsm))
  26. raise Exception("任务标识错误[{0}]".format(self.bsm))
  27. self.task = tasks[0]
  28. def run(self):
  29. mxd = mp.MapDocument(self.mxd)
  30. df = mp.ListDataFrames(mxd)[0]
  31. # 市级行政区控制是否显示
  32. layersj = mp.ListLayers(mxd, '市级行政区', df)[0]
  33. layersj.visible = True
  34. if len(self.xzqdm) == 6 :
  35. layersj.visible = False
  36. #县级行政区获取范围
  37. layerxj = mp.ListLayers(mxd,'县级行政区',df)[0]
  38. query = "XZQDM like '{0}%'".format(str(self.xzqdm))
  39. layerxj.definitionQuery = query
  40. # 所有图层 SW_XZQH
  41. layers = mp.ListLayers(mxd)
  42. query1 = "SW_XZQH like '{0}%'".format(str(self.xzqdm))
  43. for layer in layers:
  44. if layer.name !='市级行政区' and layer.name !='县级行政区' :
  45. layer.definitionQuery = query1
  46. df.extent = layerxj.getExtent()
  47. for elm in mp.ListLayoutElements(mxd, "TEXT_ELEMENT"):
  48. if elm.name == "zbt":
  49. elm.text = self.task['ZBT']
  50. if elm.name == "fbt":
  51. elm.text = self.task['FBT']
  52. if elm.name == "bzdw":
  53. elm.text = self.task['BZDW']
  54. if elm.name == "bzrq":
  55. elm.text = self.task['BZSJ']
  56. if elm.name == "ztsj":
  57. elm.text = self.task['ZTSJ']
  58. if elm.name == "ztdw":
  59. elm.text = self.task['ZTDW']
  60. mp.ExportToJPEG(mxd, self.jpg, resolution = 300)
  61. print("####OK####")