首页 > 其他分享 >有图层样式生成符号库

有图层样式生成符号库

时间:2023-05-02 21:44:05浏览次数:27  
标签:category name lyr 样式 switch 图层 stylxDB arcpy 符号库

import arcpy
import sqlite3
 
aprx = arcpy.mp.ArcGISProject(r"CURRENT")
m = aprx.activeMap
groupLayer = arcpy.GetParameterAsText(0)
lyrs = m.listLayers()
 
stylx_path = arcpy.GetParameterAsText(1)
 
stylxDB = sqlite3.connect(stylx_path)
 
cursor = stylxDB.cursor()
 
category_switch = {4: "一级类",
                   5: "二级类",
                   6: "三级类", }
 
class_switch = {"Point": 3,
                "Polyline": 4,
                "Polygon": 5}
 
 
for lyr in lyrs:
    longName = lyr.longName
    if longName.startswith(groupLayer) and lyr.isGroupLayer == False:
        type = arcpy.Describe(lyr).featureClass.shapeType
        classValue = class_switch.get(type)
 
        sym = lyr.symbology
        if sym.renderer.type == 'SimpleRenderer':
            try:
                cim = lyr.getDefinition("V2").renderer.symbol.symbol
                content = arcpy.cim.GetJSONForCIMObject(cim, "V2")
                name = lyr.name
                key = lyr.name
                category = category_switch.get(len(name))
 
                new_row = (classValue, category, name, content, key)
 
                cursor.execute(
                    'INSERT INTO ITEMS(CLASS, CATEGORY, NAME, CONTENT, KEY) VALUES(?,?,?,?)', new_row)
 
                stylxDB.commit()
                arcpy.AddMessage("√ "+lyr.name)
            except:
                arcpy.AddMessage("× "+lyr.name)
 
stylxDB.close()
————————————————
版权声明:本文为CSDN博主「学学GIS」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baidu_28157641/article/details/125951148

 

标签:category,name,lyr,样式,switch,图层,stylxDB,arcpy,符号库
From: https://www.cnblogs.com/gisoracle/p/17368327.html

相关文章

  • ArcGIS Pro 符号库的内容
    公路:方案1:Highway_Scheme1_4主要道路:方案1:MajorRoad_Scheme1_4次要道路:方案1:MinorRoad_Scheme1_4匝道:方案1:Ramp_Scheme1_4铁路:方案1:Railroad_Scheme1_4边界:方案1:Boundary_Scheme1_4供水(线):方案1:Water(line)_Scheme1_4间歇供水(线):方案1......
  • LayerDrawable层叠样式layer-list
    layer-list可以将多个图片按照顺序层叠起来。语法:在drawalbe/drawable-layer.xml中<layer-listxmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:drawable="@android:color/white"/><itemand......
  • 答题积分小程序云开发实战-界面交互篇:答题页布局样式与逻辑交互开发
    微信小程序云开发实战-答题积分赛小程序界面交互篇:答题页布局样式与逻辑交互开发答题页原型稿实现思路分析:1)答题未选中状态;2)答题已选中状态,点击确定提交选中结果;3)显示答案以及题目解析,如回答正确,自动进入下一题;如回答错误,停留在当前答题页面;4)每次答完10题,答对分数才会计入积分;5)最后......
  • Android 用户界面---样式和主…
    样式是给View或Window指定外观和格式的属性集合。样式能够指定如高、边距、字体颜色、字体尺寸、背景颜色等属性。样式被定义在一个与布局XML文件分开的XML资源文件中。Android中的样式与Web设计中的层叠式样表类似,允许与内容分开设计。例如,通过使用样式,可以把下面这个布局XML转换......
  • mapbox怎么获取图层列表
    要在Mapbox中获取图层列表,可以使用MapboxGLJS库中的getStyle()方法获取当前地图样式的信息,其中包括所有有关的图层信息,然后通过遍历图层数组获取所有的图层名称。下面是一个示例代码,展示如何获取Mapbox地图中的所有图层名称:mapboxgl.accessToken='YOUR_ACCESS_TOKEN';......
  • TileServer GL的样式怎么配置图层层级
    在TileServerGL的样式中,可以通过minzoom和maxzoom属性来配置图层的层级范围。minzoom属性用于指定最小层级,即在什么层级下才会显示该图层。例如,如果将minzoom属性设置为10,则该图层只会在层级大于等于10时显示。maxzoom属性用于指定最大层级,即在什么层级下该图层将不......
  • TileServer GL图层样式的layout属性
    在TileServerGL的样式中,layout属性用于定义图层布局参数。以下是一些常见的layout属性及其说明:visibility:指定图层是否可见。line-cap:指定线条末端的外观样式(butt、round、square)。line-join:指定连接线段的类型(miter、bevel、round)。line-miter-limit:指定mitre连接的miter......
  • mapbox如何调整图层层级关系
    在MapboxGLJS中,您可以使用moveLayer方法来调整图层的层级关系。其语法如下:map.moveLayer('layerID','beforeID');其中,layerID是您要调整的图层的ID,beforeID是该图层所要移动到的目标图层的ID,表示将该图层放在目标图层的前面。例如,假设您有两个图层分别为layer1和laye......
  • mapbox显示隐藏图层
    在Mapbox中,如果您想要显示或隐藏一个图层,可以使用setLayoutProperty()方法,通过设置该图层的visibility属性来实现。setLayoutProperty()方法可以修改地图上指定图层的样式属性。对于visibility属性,您可以将其设置为'visible'或'none'来分别显示或隐藏该图层。下面是一......
  • MFC-GetExtendedStyle获取扩展样式
     DWORDExStyles=mylist4.GetExtendedStyle();//获取扩展样式DWORDoldstyle=mylist4.SetExtendedStyle(ExStyles|LVS_EX_FULLROWSELECT);//设置扩展样式/*指定的扩展样式LVS_EX_GRIDLINES//绘制表格LVS_EX_SUBITEMIMAGES//......