# 服务端条件查询和表达式查询
# 条件查询
针对后台数据库表结构,使用sql语句条件部分进行数据查询。只需要写where
后面的部分
表结构如下
字段名 | 类型 | 说明 |
---|---|---|
id | integer | id |
objectid | text | 实体id(块objectid命名规则:块id_引用的块定义id1_引用的块定义id2(可能有多个)_实体id; 组objectid命名规则:组id$实体id_实体内元素索引;表格命名规则:表格id@实体id_实体内元素索引,其余实体命名规则: id_实体内元素索引 |
layerindex | integer | 图层索引 |
name | text | 实体类型值,如"1"表示AcDbLine,具体值查看下面的“支持的CAD实体类型” |
color | int | 颜色(根据rgb颜色计算此值,例如黑色为0x000000,加上透明度为0xFF000000, 变成无符号 0xff000000<<0结果为 -16777216) |
data | blob | 几何数据 |
s1 | text | 线型 |
s2 | text | 扩展字典数据 |
s3 | text | 坐标数据,不同实体表达不一样 |
s4 | text | 字符型属性数据, 不同实体表达不一样 |
s5 | text | 字符型属性数据, 不同实体表达不一样 |
n1 | float | 颜色索引 |
n2 | float | 线型比例 |
n3 | float | 线宽 |
n4 | float | 透明度 |
n5 | float | 数值型属性数据, 不同实体表达不一样 |
n6 | float | 数值型属性数据, 不同实体表达不一样 |
n7 | float | 数值型属性数据, 不同实体表达不一样 |
n8 | float | 数值型属性数据, 不同实体表达不一样 |
n9 | float | 数值型属性数据, 不同实体表达不一样 |
n10 | float | 数值型属性数据, 不同实体表达不一样 |
geom | GEOMETRY | 实体外包矩形 |
(实体类型各字段含义详细文档见此文档后面说明)
# 渲染模式下表达式内置变量
变量 | 说明 | 类型 | 举例 |
---|---|---|---|
gInColor | 当前实体输入颜色 | (数值型) | 4278255615 |
gInColorRed | 当前实体输入颜色(红色分量) | (数值型) | 255 |
gInColorGreen | 当前实体输入颜色(绿色分量) | (数值型) | 255 |
gInColorBlue | 当前实体输入颜色(蓝色分量) | (数值型) | 0 |
gInZoom | 当前缩放级别 | (数值型) | 1 |
println | 调试输出函数 | ||
gOutColor | 输出颜色(要修改的颜色) | (数值型) | 4278255615 |
# 查询模式下样式表达式内置变量
变量 | 说明 | 类型 | 举例 |
---|---|---|---|
gInLayerIndex | 当前实体图层索引 | (数值型) | 0 |
gInObjectId | 当前实体对象ID | (字符串) | '283' 判断如 gInObjectId=='283' |
gInFeatureType | 当前实体类型 | (字符串) | 'AcDbPolyline' 判断如 gInFeatureType=='AcDbPolyline' |
gInLayerName | 当前实体图层名称 | (字符串) | '图层1' 判断如 gInLayerName=='图层1' |
gInColor | 当前实体颜色 | (数值型) | 4278255615 |
gInColorRed | 当前实体颜色(红色分量) | (数值型) | 255 |
gInColorGreen | 当前实体颜色(绿色分量) | (数值型) | 255 |
gInColorBlue | 当前实体颜色(蓝色分量) | (数值型) | 0 |
gInColorAlpha | 当前实体颜色(透明度分量) | (数值型) | 0 |
println | 调试输出函数 | ||
gInExtendMinX | 当前实体图形范围(右下角X) | (数值型) | 700.10 |
gInExtendMinY | 当前实体图形范围(右下角y) | (数值型) | 10.01 |
gInExtendMaxX | 当前实体图形范围(左上角X) | (数值型) | 800.20 |
gInExtendMaxY | 当前实体图形范围(左上角y) | (数值型) | 20.02 |
gInAttrs1 | 当前实体属性一值 | (字符串) s1 线型 | |
gInAttrs2 | 当前实体属性二值 | (字符串) s2 扩展字典数据 | |
gInAttrs3 | 当前实体属性三值 | (字符串) s3 不同实体表达不一样 | |
gInAttrs4 | 当前实体属性四值 | (字符串) s4 字符型属性数据, 不同实体表达不一样 | |
gInAttrs5 | 当前实体属性五值 | (字符串) s5 字符型属性数据, 不同实体表达不一样 | |
gInAttrn6 | 当前实体属性六值 | (数值型) n1 颜色索引 | |
gInAttrn7 | 当前实体属性七值 | (数值型) n2 线型比例 | |
gInAttrn8 | 当前实体属性八值 | (数值型) n3 线宽 | |
gInAttrn9 | 当前实体属性九值 | (数值型) n4 透明度 | |
gInAttrn10 | 当前实体属性十值 | (数值型) n5 数值型属性数据, 不同实体表达不一样 | |
gInAttrn11 | 当前实体属性11值 | (数值型) n6 不同实体表达不一样 | |
gInAttrn12 | 当前实体属性12值 | (数值型) n7 不同实体表达不一样 | |
gInAttrn13 | 当前实体属性13值 | (数值型) n8 不同实体表达不一样 | |
gInAttrn14 | 当前实体属性14值 | (数值型) n9 不同实体表达不一样 | |
gInAttrn15 | 当前实体属性15值 | (数值型) n10 不同实体表达不一样 | |
gInCoordX | 当前实体坐标X数组 | (数值型数组) | [10,20...] gInCoordX[0]=10 |
gInCoordY | 当前实体坐标Y数组 | (数值型数组) | [10,20...] gInCoordY[0]=10 |
gInCoordZ | 当前实体坐标Z数组 | (数值型数组) | [10,20...] gInCoordZ[0]=10 |
gInCoordCount | 当前实体坐标个数 | (数值型) | 2 |
gOutColorRed | 返回的颜色(红色分量)(修改当前实体颜色) | (数值型) | 255,如gOutColorRed := 255;表示所有级别红色分量为255; 也可以是数组表示,如gOutColorRed[0] := 122;gOutColorRed[5] := 200;表示1-4级别红色分量是122,5级别以上是红色分量200 |
gOutColorGreen | 返回的颜色(红色分量)(修改当前实体颜色) | (数值型) | 255,用法同上 |
gOutColorBlue | 返回的颜色(红色分量)(修改当前实体颜色) | (数值型) | 255,用法同上 |
gOutColorAlpha | 返回的颜色(透明度分量)(修改当前实体颜色) | (数值型) | 255,用法同上 |
gOutLineWidth | 返回的线宽值(修改当前实体线宽值) | (数值型) | 3,用法同上 |
gOutVisible | 返回是否可见(修改当前实体是否可见) | (数值型) | 1或0,用法同上 |
gOutReturn | 0 不加入选择集;1加入选择集 |
# 查询数据表达式
同上
# 支持的CAD实体类型
类名称 | 说明 | 类型值 |
---|---|---|
AcDbLine | 直线 | 1 |
AcDbPolyline | 多段线 | 2 |
AcDb2dPolyline | 二维折线 | 3 |
AcDb3dPolyline | 三维多段线 | 4 |
AcDbSpline | 样条曲线 | 5 |
AcDbArc | 圆弧 | 6 |
AcDbCircle | 圆 | 7 |
AcDbEllipse | 椭圆 | 8 |
AcDbCurve | 曲线 | 9 |
AcDbBlockReference | 块参照 | 10 |
AcDbHatch | 填充 | 11 |
AcDbMText | 多行文本 | 12 |
AcDbText | 单行文本 | 13 |
AcDbShape | 型实体 | 14 |
AcDbRasterImage | 栅格图片 | 15 |
AcDbWipeout | 遮罩实体 | 16 |
AcDb2LineAngularDimension | 角度标注[两条线] | 17 |
AcDb3PointAngularDimension | 角度标注[三点] | 18 |
AcDbAlignedDimension | 对齐标注 | 19 |
AcDbArcDimension | 圆弧标注 | 20 |
AcDbDiametricDimension | 直径标注 | 21 |
AcDbOrdinateDimension | 坐标标注 | 22 |
AcDbRadialDimension | 半径标注 | 23 |
AcDbRadialDimensionLarge | 半径折线标注 | 24 |
AcDbRotatedDimension | 转角标注 | 25 |
AcDbAttributeDefinition | 属性注记 | 26 |
AcDbAttribute | 块属性 | 27 |
AcDbTable | 表格 | 28 |
AcDbMLeader | 引线标注 | 29 |
AcDbRegion | 面域 | 30 |
AcDbPolyFaceMesh | 多面网格实体 | 31 |
AcDbPolygonMesh | 多边形网格 | 32 |
AcDbSurface | 曲面 | 33 |
AcDb3dSolid | 三维实体 | 34 |
AcDbFace | 三维面 | 35 |
# 查询返回字段
字段名称 | 说明 |
---|---|
objectid | 实体唯一id,图更新后也不会变化 |
layerindex | 图层索引 |
name | 实体类型 |
geojson | 坐标 WKT 墨卡托坐标格式 |
envelop | 外包矩形 (WKT 墨卡托坐标格式 ) |
bounds | 外包矩形(CAD坐标)([minx,miny,maxx, maxy] ) |
isEnvelop | 查询时是否按真正的范围计算,还是按外包盒(如果点太多,点选时会按范围返回) |
color | 实体颜色 |
linetype | 线型 |
linetypeScale | 线型比例 |
lineWidth | 线宽 |
alpha | 透明度 |
xdata | 扩展数据 |
points | 坐标序列 |
indices | 点索引序列 |
thickness | 厚度 |
area | 面积 |
isclosed | 是否闭合 |
polyType | 多段线类型 |
center | 圆中心点 |
radius | 圆半径 |
startAngle | 圆弧开始角度 |
endAngle | 圆弧结束角度 |
rotate | 旋转角度 |
positon | 位置 |
normal | 法向量 |
elevation | 高度 |
length | 长度 |
location | 位置 |
contents | 文本内容(多行文本时有样式内容) |
height | 文本高 |
width | 文本宽 |
textHeight | 文字高度 |
text | 文本内容 |
actualHeight | 多行文本实际高 |
actualWidth | 多行文本实际宽 |
bulge | 凸度 |
origin | 基点 |
u | uv中的u |
v | uv中的v |
size | 大小 |
isFit | 是否拟合 |
fitTol | 拟合值 |
degree | 度数 |
horzMode | 水平对齐模式 |
majorAxis | 轴 |
data3d | 3d实体等材质属性数据 |
# 实体类型各字段含义
s1 线型(字符型); s2 扩展字典数据(字符型);
n1 颜色索引; n2 线型比例; n3 线宽; n4 透明度;
类名称 | 类说明 | 类型值 | s3(字符型) | s4(字符型) | s5(字符型) | n5 | n6 | n7 | n8 | n9 | n10 |
---|---|---|---|---|---|---|---|---|---|---|---|
AcDbLine | 直线 | 1 | points | thickness | length | ||||||
AcDbPolyline | 多段线 | 2 | points | bulge | data3d | area | isclosed | linetypeScale | thickness | elevation | |
AcDb2dPolyline | 二维折线 | 3 | points | area | isclosed | polyType | thickness | elevation | |||
AcDb3dPolyline | 三维多段线 | 4 | points | area | isclosed | polyType | |||||
AcDbSpline | 样条曲线 | 5 | points | area | isclosed | isFit | fitTol | degree | |||
AcDbArc | 圆弧 | 6 | center | area | isclosed | radius | startAngle | endAngle | thickness | ||
AcDbCircle | 圆 | 7 | center | area | isclosed | radius | thickness | ||||
AcDbEllipse | 椭圆 | 8 | center | majorAxis | area | isclosed | radius | startAngle | endAngle | ||
AcDbCurve | 曲线 | 9 | area | isclosed | |||||||
AcDbBlockReference | 块参照 | 10 | positon | attributeDef | blockname | rotate | scaleX | scaleY | scaleZ | ||
AcDbHatch | 填充 | 11 | points | patternName | elevation | patternAngle | patternScale | ||||
AcDbMText | 多行文本 | 12 | location | contents | text | height | width | rotate | textHeight | actualHeight | actualWidth |
AcDbText | 单行文本 | 13 | location | text | height | rotate | horzMode | ||||
AcDbShape | 型实体 | 14 | positon | normal | rotate | size | |||||
AcDbRasterImage | 栅格图片 | 15 | origin | ||||||||
AcDbWipeout | 遮罩实体 | 16 | |||||||||
AcDb2LineAngularDimension | 角度标注[两条线] | 17 | |||||||||
AcDb3PointAngularDimension | 角度标注[三点] | 18 | |||||||||
AcDbAlignedDimension | 对齐标注 | 19 | |||||||||
AcDbArcDimension | 圆弧标注 | 20 | |||||||||
AcDbDiametricDimension | 直径标注 | 21 | |||||||||
AcDbOrdinateDimension | 坐标标注 | 22 | |||||||||
AcDbRadialDimension | 半径标注 | 23 | |||||||||
AcDbRadialDimensionLarge | 半径折线标注 | 24 | |||||||||
AcDbRotatedDimension | 转角标注 | 25 | |||||||||
AcDbAttributeDefinition | 属性注记 | 26 | location | text | contents | height | rotate | horzMode | |||
AcDbAttribute | 块属性 | 27 | location | text | contents | height | rotate | horzMode | |||
AcDbTable | 表格 | 28 | positon | attributeDef | contents | rotate | scaleX | scaleY | scaleZ | ||
AcDbMLeader | 引线标注 | 29 | location | contents | text | height | width | rotate | textHeight | actualHeight | actualWidth |
AcDbRegion | 面域 | 30 | points | indices | data3d | area | perimeter | ||||
AcDbPolyFaceMesh | 多面网格实体 | 31 | points | indices | data3d | ||||||
AcDbPolygonMesh | 多边形网格 | 32 | points | indices | data3d | ||||||
AcDbSurface | 曲面 | 33 | points | indices | data3d | ||||||
AcDb3dSolid | 三维实体 | 34 | points | indices | data3d | ||||||
AcDbFace | 三维面 | 35 | points | indices | data3d |
# 内置样式函数
// gRed(inColor) 取颜色红色分量
function_t(
"gRed",
"var color := inColor % 256 ; "
"color ",
"inColor");
// gGreen(inColor) 取颜色绿色分量
function_t(
"gGreen",
"var color := inColor% (256 * 256) / 256; "
"color ",
"inColor");
// gBlue(inColor) 取颜色蓝色分量
function_t(
"gBlue",
"var color := inColor % (256 * 256 * 256) / 256 / 256 ; "
"color ",
"inColor");
// gFilterGrey(r, g, b) 灰度滤镜(取三种颜色的平均值)
function_t(
"gFilterGrey",
"var grey := round(( clrRed + clrGreen + clrBlue) / 3);"
"var color := grey + grey * 256 + grey * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterGreyMin(r, g, b) 灰度滤镜(取三种颜色的最小)
function_t(
"gFilterGreyMin",
"var grey := round(min(clrRed,clrGreen,clrBlue);"
"var color := grey + grey * 256 + grey * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterGreyMax(r, g, b) 灰度滤镜(取三种颜色的最大)
function_t(
"gFilterGreyMax",
"var grey := round(max(clrRed,clrGreen,clrBlue);"
"var color := grey + grey * 256 + grey * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterWeight(r, g, b) 灰度滤镜(加权平均值)
function_t(
"gFilterWeight",
"var grey := round(0.3 * clrRed + 0.59 * clrGreen + 0.11 * clrBlue);"
"var color := grey + grey * 256 + grey * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterBlackWhite(r, g, b) 黑白滤镜
function_t(
"gFilterBlackWhite",
"var grey := round(( clrRed + clrGreen + clrBlue) / 3); "
"var color := if(grey >= 100, 16777215, 0); "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterOpposite(r, g, b) 反向滤镜
function_t(
"gFilterOpposite",
"var red := round(255 - clrRed);"
"var green := round(255 - clrGreen);"
"var blue := round(255 - clrBlue);"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterMaxAvg(r, g, b) 去色滤镜 rgb三种颜色取三种颜色的最值的平均值。
function_t(
"gFilterMaxAvg",
"var grey := round((max(clrRed,clrGreen,clrBlue) + min(clrRed,clrGreen,clrBlue))/2);"
"var color := grey + grey * 256 + grey * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterRed(r, g, b) 单色滤镜 只保留红色
function_t(
"gFilterRed",
"var red := clrRed;"
"var green := 0;"
"var blue := 0;"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterGreen(r, g, b) 单色滤镜 只保绿色
function_t(
"gFilterGreen",
"var red := 0;"
"var green := clrGreen;"
"var blue := 0;"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterBlue(r, g, b) 单色滤镜 只保留蓝色
function_t(
"gFilterBlue",
"var red := 0;"
"var green := 0;"
"var blue := clrBlue;"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterRemoveRed(r, g, b) 滤镜去掉红色
function_t(
"gFilterRemoveRed",
"var red := 0;"
"var green := clrGreen;"
"var blue := clrBlue;"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterRemoveGreen(r, g, b) 滤镜去掉绿色
function_t(
"gFilterRemoveGreen",
"var red := clrRed;"
"var green := 0;"
"var blue := clrBlue;"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterRemoveBlue(r, g, b) 滤镜去掉蓝色
function_t(
"gFilterRemoveBlue",
"var red := clrRed;"
"var green := clrGreen;"
"var blue := 0;"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterOld(r, g, b) 怀旧滤镜
function_t(
"gFilterOld",
"var red := round(0.393 * clrRed + 0.769 * clrGreen + 0.189 * clrBlue);"
"var green := round(0.349 * clrRed + 0.686 * clrGreen + 0.168 * clrBlue);"
"var blue := round(0.272 * clrRed + 0.534 * clrGreen + 0.131 * clrBlue);"
"red := min(red, 255);"
"green := min(green, 255);"
"blue := min(blue, 255);"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterFusion(r, g, b) 熔铸滤镜
function_t(
"gFilterFusion",
"var red := round(clrRed * 128 / (clrGreen + clrBlue + 1);"
"var green := round(clrGreen * 128 / (clrRed + clrBlue + 1);"
"var blue := round(clrBlue * 128 / (clrGreen + clrRed + 1);"
"red := min(red, 255);"
"green := min(green, 255);"
"blue := min(blue, 255);"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterFrozen(r, g, b) 冰冻滤镜
function_t(
"gFilterFrozen",
"var red := round((clrRed - clrGreen -clrBlue) * 3 /2);"
"var green := round((clrGreen - clrRed -clrBlue) * 3 /2);"
"var blue := round( (clrBlue - clrGreen - clrRed) * 3 /2);"
"red := min(red, 255);"
"green := min(green, 255);"
"blue := min(blue, 255);"
"red := max(red, 0);"
"green := max(green, 0);"
"blue := max(blue, 0);"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterComic(r, g, b) 连环画滤镜
function_t(
"gFilterComic",
"var red := round(abs(clrGreen - clrBlue + clrGreen + clrRed) * clrRed / 256);"
"var green := round(abs(clrBlue -clrGreen + clrBlue + clrRed) * clrRed / 256);"
"var blue := round(abs(clrBlue -clrGreen + clrBlue + clrRed) * clrGreen / 256);"
"red := min(red, 255);"
"green := min(green, 255);"
"blue := min(blue, 255);"
"red := max(red, 0);"
"green := max(green, 0);"
"blue := max(blue, 0);"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterBrown(r, g, b) 褐色滤镜
function_t(
"gFilterBrown",
"var red := round(clrRed * 0.393 + clrGreen * 0.769 + clrBlue * 0.189);"
"var green := round(clrRed * 0.349 + clrGreen * 0.686 + clrBlue * 0.168);"
"var blue := round(clrRed * 0.272 + clrGreen * 0.534 + clrBlue * 0.131);"
"red := min(red, 255);"
"green := min(green, 255);"
"blue := min(blue, 255);"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterBlueTheme(r, g, b) 蓝色主题滤镜
function_t(
"gFilterBlueTheme",
"var red := round(clrRed * 0.7);"
"var green := round(clrGreen * 0.7);"
"var blue := clrBlue;"
"blue := max(100, blue);"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterRedTheme(r, g, b) 红色主题滤镜
function_t(
"gFilterRedTheme",
"var red := clrRed;"
"var green := round(clrGreen * 0.7);"
"var blue := round(clrBlue * 0.7);"
"red := max(100, red);"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterGreenTheme(r, g, b) 绿色主题滤镜
function_t(
"gFilterGreenTheme",
"var red := round(clrRed * 0.7);"
"var green := clrGreen;"
"var blue := round(clrBlue * 0.7);"
"green := max(100, green);"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue");
// gFilterCustomTheme(r, g, b, maxr, maxg, maxb) 自定义主题滤镜
function_t(
"gFilterCustomTheme",
"var red := if(maxr > 1, max(maxr, clrRed), round(clrRed * maxr);"
"var green := if(maxg > 1, max(maxg, clrGreen), round(clrGreen * maxg);"
"var blue := if(maxb > 1, max(maxb, clrBlue), round(clrBlue * maxb);"
"var color := blue + green * 256 + red * 256 * 256; "
"color ",
"clrRed", "clrGreen", "clrBlue", "maxr", "maxg", "maxb");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
← 服务端渲染表达式语法 地图服务Rest接口 →