12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- # -*- coding: utf-8 -*-
- import os
- import sys
- import log
- import arcpy
- # import utils
- import appconfig
- # import arcpy
- import arcpy.mp as mp
- from db.postgresql import Postgresql
- import importlib, sys
- importlib.reload(sys)
- class Ztt:
- def __init__(self, data):
- self.db = Postgresql(appconfig.DB_CONN)
- self.bsm = data["bsm"]
- self.mxd = data["mxd"]
- self.jpg = data["jpg"]
- self.task()
- def task(self):
- '''加载数据-任务'''
- sql = "select a.BSM as \"BSM\",a.XZQDM as \"XZQDM\",A.ZBT as \"ZBT\",A.FBT as \"FBT\",A.BZDW as \"BZDW\",A.BZSJ as \"BZSJ\",A.ZTSJ as \"ZTSJ\",A.ZTDW as \"ZTDW\",B.MBMC as \"MBMC\",B.MBWJ as \"MBWJ\" from onemap.T_YZT_ZTT a JOIN onemap.T_YZT_ZTTMB b on a.MBBSM = b.BSM where a.BSM='{0}'".format(
- self.bsm)
- tasks = self.db.query(sql)
- if len(tasks) == 0:
- self.fxlog(self.bsm, "error", "任务标识错误[{0}]".format(self.bsm))
- raise Exception("任务标识错误[{0}]".format(self.bsm))
- self.task = tasks[0]
- def run(self):
- mxd = mp.MapDocument(self.mxd)
- xzqdm = self.task['XZQDM']
- if xzqdm and xzqdm != '':
- df = mp.ListDataFrames(mxd)[0]
- # 市级行政区控制是否显示
- layersj = mp.ListLayers(mxd, '市级行政区', df)[0]
- layersj.visible = True
- if len(xzqdm) > 4:
- layersj.visible = False
- # 县级行政区获取范围
- layerxj = mp.ListLayers(mxd, '县级行政区', df)[0]
- query = "XZQDM like '{0}%'".format(str(xzqdm))
- layerxj.definitionQuery = query
- # 所有图层 必须都带有 SW_XZQH
- layers = mp.ListLayers(mxd)
- query1 = "SW_XZQH like '{0}%'".format(str(xzqdm))
- for layer in layers:
- if layer.name != '市级行政区' and layer.name != '县级行政区':
- layer.definitionQuery = query1
- df.extent = layerxj.getExtent()
- for elm in mp.ListLayoutElements(mxd, "TEXT_ELEMENT"):
- if elm.name == "zbt":
- elm.text = self.task['ZBT']
- if elm.name == "fbt":
- elm.text = self.task['FBT']
- if elm.name == "bzdw":
- elm.text = self.task['BZDW']
- if elm.name == "bzrq":
- elm.text = self.task['BZSJ']
- if elm.name == "ztsj":
- elm.text = self.task['ZTSJ']
- if elm.name == "ztdw":
- elm.text = self.task['ZTDW']
- mp.ExportToJPEG(mxd, self.jpg, resolution=300)
- print("####OK####")
|