当前位置: 首页>>代码示例>>Python>>正文


Python QgsPalLayerSettings.readFromLayer方法代码示例

本文整理汇总了Python中qgis.core.QgsPalLayerSettings.readFromLayer方法的典型用法代码示例。如果您正苦于以下问题:Python QgsPalLayerSettings.readFromLayer方法的具体用法?Python QgsPalLayerSettings.readFromLayer怎么用?Python QgsPalLayerSettings.readFromLayer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在qgis.core.QgsPalLayerSettings的用法示例。


在下文中一共展示了QgsPalLayerSettings.readFromLayer方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: prepare_ordered_marker

# 需要导入模块: from qgis.core import QgsPalLayerSettings [as 别名]
# 或者: from qgis.core.QgsPalLayerSettings import readFromLayer [as 别名]
    def prepare_ordered_marker(self, coords, idx):
        """
        Try to display nice marker on a point layer, showing the order of
        the path computed by OSRM.
        """
        self.tsp_marker_lr = QgsVectorLayer(
            "Point?crs=epsg:4326&field=id:integer"
            "&field=TSP_nb:integer(20)&field=Origin_nb:integer(20)",
            "tsp_markers_osrm{}".format(self.nb_route), "memory")
        symbol = QgsSymbolV2.defaultSymbol(self.tsp_marker_lr.geometryType())
        symbol.setSize(4.5)
        symbol.setColor(QtGui.QColor("yellow"))

        ordered_pts = \
            [coords[i["waypoint_index"]] for i in self.parsed['waypoints']]
        print("ordered_pts : ", ordered_pts)

        features = []
        for nb, pt in enumerate(ordered_pts):
            ft = QgsFeature()
            ft.setGeometry(QgsGeometry.fromPoint(QgsPoint(pt)))
            ft.setAttributes([nb, nb + 1, coords.index(pt)])
            features.append(ft)
        self.tsp_marker_lr.dataProvider().addFeatures(features)

        pal_lyr = QgsPalLayerSettings()
        pal_lyr.readFromLayer(self.tsp_marker_lr)
        pal_lyr.enabled = True
        pal_lyr.fieldName = 'TSP_nb'
        pal_lyr.placement= QgsPalLayerSettings.OverPoint
        pal_lyr.setDataDefinedProperty(QgsPalLayerSettings.Size,True,True,'12','')
        pal_lyr.writeToLayer(self.tsp_marker_lr)

        self.tsp_marker_lr.setRendererV2(QgsSingleSymbolRendererV2(symbol))
        QgsMapLayerRegistry.instance().addMapLayer(self.tsp_marker_lr)
开发者ID:mthh,项目名称:osrm-gqis-plugin,代码行数:37,代码来源:osrm_dialog.py

示例2: test_write_read_settings

# 需要导入模块: from qgis.core import QgsPalLayerSettings [as 别名]
# 或者: from qgis.core.QgsPalLayerSettings import readFromLayer [as 别名]
    def test_write_read_settings(self):
        # Verify written PAL settings are same when read from layer
        # load and write default test settings
        lyr1 = self.defaultLayerSettings()
        lyr1dict = self.settingsDict(lyr1)
        # print lyr1dict
        lyr1.writeToLayer(self.layer)

        # read settings
        lyr2 = QgsPalLayerSettings()
        lyr2.readFromLayer(self.layer)
        lyr2dict = self.settingsDict(lyr1)
        # print lyr2dict

        msg = '\nLayer settings read not same as settings written'
        self.assertDictEqual(lyr1dict, lyr2dict, msg)
开发者ID:GrokImageCompression,项目名称:QGIS,代码行数:18,代码来源:test_qgspallabeling_base.py

示例3: setLabelFormatter

# 需要导入模块: from qgis.core import QgsPalLayerSettings [as 别名]
# 或者: from qgis.core.QgsPalLayerSettings import readFromLayer [as 别名]
 def setLabelFormatter(self, layer): # remove topicType
     try:
         palyr = QgsPalLayerSettings()
         palyr.readFromLayer(layer)
         palyr.enabled = True
         palyr.fontBold = True
         palyr.shapeDraw = True
         palyr.shapeTransparency = 0
         palyr.shapeType = QgsPalLayerSettings.ShapeRectangle
         palyr.textColor = QColor(255,255,255) # white
         palyr.placement = QgsPalLayerSettings.OverPoint
         palyr.quadOffset = QgsPalLayerSettings.QuadrantBelow
         palyr.multilineAlign = QgsPalLayerSettings.MultiCenter
         palyr.yOffset = 0.01
         palyr.fieldName = '$format_label'
         palyr.writeToLayer(layer)
         Log.debug("Palyr Settings updated")
     except Exception as e:
         Log.debug("Error setting Label Format " + str(e))
开发者ID:NathanW2,项目名称:telemetrylayer,代码行数:21,代码来源:tltopicmanager.py

示例4: convert2CartoCSS

# 需要导入模块: from qgis.core import QgsPalLayerSettings [as 别名]
# 或者: from qgis.core.QgsPalLayerSettings import readFromLayer [as 别名]
    def convert2CartoCSS(self, layer):
        """Convert layer symbology to CartoCSS"""
        renderer = layer.rendererV2()
        carto_css = ''
        label_css = ''

        label_settings = QgsPalLayerSettings()
        label_settings.readFromLayer(layer)
        if label_settings.enabled:
            d = {
                'layername': '#' + layer.tableName(),
                'field': label_settings.getLabelExpression().dump(),
                # TODO Get font size
                'size': 11,
                'color': label_settings.textColor.name()
            }
            filein = open(QgisCartoDB.CartoDBPlugin.PLUGIN_DIR + '/templates/labels.less')
            label_css = Template(filein.read())
            label_css = label_css.substitute(d)
        # qDebug('Label CSS: ' + label_css)

        # CSS for single symbols
        if renderer.type() == 'singleSymbol':
            symbol = renderer.symbol()
            carto_css = self.symbol2CartoCSS(layer, symbol, '#' + layer.tableName())
        # CSS for categorized symbols
        elif renderer.type() == 'categorizedSymbol':
            # qDebug('Categorized: ' + renderer.classAttribute())
            for cat in renderer.categories():
                symbol = cat.symbol()
                # qDebug("%s: %s type: %s" % (str(cat.value()), cat.label(), type(cat.value())))
                if cat.value() is not None and cat.value() != '' and not isinstance(cat.value(), QPyNullVariant):
                    if isinstance(cat.value(), (int, float, long)) or (isinstance(cat.value(), str) and cat.value().isdecimal()):
                        value = unicode(cat.value())
                    else:
                        value = unicode('"' + cat.value() + '"')

                    value = str(value.encode('utf8', 'ignore'))
                    # qDebug('Value {}'.format(value))
                    style_name = '#{}[{}={}]'.format(layer.tableName(), renderer.classAttribute(), value).decode('utf8')
                    carto_css = carto_css + \
                        self.symbol2CartoCSS(layer, symbol, style_name)
                else:
                    carto_css = self.symbol2CartoCSS(layer, symbol, '#' + layer.tableName()) + carto_css
        # CSS for graduated symbols
        elif renderer.type() == 'graduatedSymbol':
            # qDebug('Graduated')
            def upperValue(ran):
                """Get upper value from range"""
                return ran.upperValue()

            ranges = sorted(renderer.ranges(), key=upperValue, reverse=True)
            for ran in ranges:
                symbol = ran.symbol()
                '''
                qDebug("%f - %f: %s" % (
                    ran.lowerValue(),
                    ran.upperValue(),
                    ran.label()
                ))
                '''
                carto_css = carto_css + \
                    self.symbol2CartoCSS(layer, symbol, '#' + layer.tableName() + \
                    '[' + renderer.classAttribute() + '<=' + str(ran.upperValue()) + ']')

        return '/** Styles designed from QGISCartoDB Plugin */\n\n' + carto_css + '\n' + label_css
开发者ID:gkudos,项目名称:qgis-cartodb,代码行数:68,代码来源:CreateViz.py


注:本文中的qgis.core.QgsPalLayerSettings.readFromLayer方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。