本文整理汇总了Python中qgis.core.QgsCoordinateReferenceSystem.saveAsUserCRS方法的典型用法代码示例。如果您正苦于以下问题:Python QgsCoordinateReferenceSystem.saveAsUserCRS方法的具体用法?Python QgsCoordinateReferenceSystem.saveAsUserCRS怎么用?Python QgsCoordinateReferenceSystem.saveAsUserCRS使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsCoordinateReferenceSystem
的用法示例。
在下文中一共展示了QgsCoordinateReferenceSystem.saveAsUserCRS方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import saveAsUserCRS [as 别名]
def __init__(self, plugin, layerDef, creditVisibility=1):
QgsPluginLayer.__init__(self, TileLayer.LAYER_TYPE, layerDef.title)
self.plugin = plugin
self.iface = plugin.iface
self.layerDef = layerDef
self.creditVisibility = 1 if creditVisibility else 0
# set custom properties
self.setCustomProperty("title", layerDef.title)
self.setCustomProperty("credit", layerDef.credit) # TODO: need to remove
self.setCustomProperty("serviceUrl", layerDef.serviceUrl)
self.setCustomProperty("yOriginTop", layerDef.yOriginTop)
self.setCustomProperty("zmin", layerDef.zmin)
self.setCustomProperty("zmax", layerDef.zmax)
if layerDef.bbox:
self.setCustomProperty("bbox", layerDef.bbox.toString())
self.setCustomProperty("creditVisibility", self.creditVisibility)
# set standard/custom crs
self.setCrs(self.CRS_3857)
try:
crs = None
if layerDef.epsg_crs_id is not None:
crs = QgsCoordinateReferenceSystem(layerDef.epsg_crs_id, QgsCoordinateReferenceSystem.EpsgCrsId)
if layerDef.postgis_crs_id is not None:
crs = QgsCoordinateReferenceSystem(layerDef.postgis_crs_id, QgsCoordinateReferenceSystem.PostgisCrsId)
if layerDef.custom_proj is not None:
# create form proj4 str
custom_crs = QgsCoordinateReferenceSystem()
custom_crs.createFromProj4(layerDef.custom_proj)
# try to search in db
searched = custom_crs.findMatchingProj()
if searched:
crs = QgsCoordinateReferenceSystem(searched, QgsCoordinateReferenceSystem.InternalCrsId)
else:
# create custom and use it
custom_crs.saveAsUserCRS('quickmapservices %s' % layerDef.title)
searched = custom_crs.findMatchingProj()
if searched:
crs = QgsCoordinateReferenceSystem(searched, QgsCoordinateReferenceSystem.InternalCrsId)
else:
crs = custom_crs
if crs:
self.setCrs(crs)
except:
msg = self.tr("Custom crs can't be set for layer {0}!").format(layerDef.title)
self.showBarMessage(msg, QgsMessageBar.WARNING, 4)
if layerDef.bbox:
self.setExtent(BoundingBox.degreesToMercatorMeters(layerDef.bbox).toQgsRectangle())
else:
self.setExtent(QgsRectangle(-layerDef.TSIZE1, -layerDef.TSIZE1, layerDef.TSIZE1, layerDef.TSIZE1))
self.setValid(True)
self.tiles = None
self.useLastZoomForPrint = False
self.canvasLastZoom = 0
self.setTransparency(LayerDefaultSettings.TRANSPARENCY)
self.setBlendModeByName(LayerDefaultSettings.BLEND_MODE)
self.setSmoothRender(LayerDefaultSettings.SMOOTH_RENDER)
self.setGrayscaleRender(LayerDefaultSettings.GRAYSCALE_RENDER)
self.setBrigthness(LayerDefaultSettings.BRIGTNESS)
self.setContrast(LayerDefaultSettings.CONTRAST)
# downloader
self.downloader = Downloader(self)
self.downloader.userAgent = QGISSettings.get_default_user_agent()
self.downloader.default_cache_expiration = QGISSettings.get_default_tile_expiry()
self.downloader.max_connection = PluginSettings.default_tile_layer_conn_count() #TODO: Move to INI files
QObject.connect(self.downloader, SIGNAL("replyFinished(QString, int, int)"), self.networkReplyFinished)
#network
self.downloadTimeout = QGISSettings.get_default_network_timeout()
# multi-thread rendering
self.eventLoop = None
QObject.connect(self, SIGNAL("fetchRequest(QStringList)"), self.fetchRequest)
if self.iface:
QObject.connect(self, SIGNAL("showMessage(QString, int)"), self.showStatusMessageSlot)
QObject.connect(self, SIGNAL("showBarMessage(QString, QString, int, int)"), self.showBarMessageSlot)