PublicStyleFunction.js 63 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533
  1. var group = ["标号","解除锁定","对象可见性","常用:点", "主线", "衬线", "填充","注记", "子标号" ];
  2. var displayName =["锁定","可见性","LibID","Code"];
  3. var displayLineStyleName = [ "线宽", "线颜色","线型","线透明度" ];
  4. var displaySurroundLineName = ["衬线类型", "衬线宽", "衬线颜色", "衬线透明度"];
  5. var displayFillStyleName = ["填充", "填充色", "填充透明度","渐变填充方式","填充背景色","填充背景透明度","渐变填充角度","渐变填充水平偏移","渐变填充竖直偏移"];
  6. var displayNameDot = ["旋转角度", "随图缩放", "镜像", "标号级别","位置点偏移","偏移线类型","宽高锁定","标号Width", "标号Height"];
  7. var displayTextContentName =["注记内容", "注记位置", "注记大小", "注记颜色", "注记字体","注记距离",
  8. "字间距","字宽百分比","字体描边", "描边色", "描边宽度",
  9. "文字背景", "背景色", "文字阴影", "阴影色", "阴影偏移量X", "阴影偏移量Y"];
  10. var groupNew =["组合类型","箭头类型","沿线类型","边框属性","半径","轨道设置","节点设置","连线类型","折线设置"];
  11. var displayNameNew = ["箭头","箭身","箭尾",
  12. "起始","终止",
  13. "路径线","贝塞尔曲线","显示箭头","避让",
  14. "标注框边框","圆角边框","对象标注边框",
  15. "半径类型","半径角度","注记一","注记二",
  16. "卫星轨道",
  17. "节点类型","节点旋转角度",
  18. "对象间连线",
  19. "折线显示",
  20. "文字对齐方式"];
  21. function collectionPropertyGridRows(featuresParameter) {
  22. var features = [];
  23. var styles=[];
  24. for(var i=0;i<featuresParameter.length;i++){
  25. styles.push(featuresParameter[i].style);
  26. if(featuresParameter[i].geometry === undefined) {
  27. features.push(featuresParameter[i]);
  28. }else{
  29. features.push(featuresParameter[i].geometry);
  30. }
  31. }
  32. var rows = [];
  33. if(features.length === 0){
  34. return rows = [];
  35. }
  36. var dotSelectFeatures = [];
  37. var algoSelectFeatures = [];
  38. var sameFeatures = [];
  39. var otherFeatures = [];
  40. var selectfeatures = [];
  41. for(var i = 0; i < features.length; i++){
  42. if(features[i].libID === features[0].libID && features[i].code === features[0].code) {
  43. sameFeatures.push(features[i]);//是否是同一个标号
  44. }
  45. }
  46. if(sameFeatures.length !== features.length){
  47. for(var i = 0; i < features.length; i++){
  48. if(features[i].symbolType === SuperMap.Plot.SymbolType.DOTSYMBOL){
  49. dotSelectFeatures.push(features[i]);//是否全是不同点标号
  50. } else if(features[i].symbolType === SuperMap.Plot.SymbolType.ALGOSYMBOL){
  51. algoSelectFeatures.push(features[i]); //是否全是不同线面标号
  52. } else {
  53. otherFeatures.push(features[i]);
  54. }
  55. }
  56. }
  57. if(sameFeatures.length === features.length){
  58. selectfeatures = features;
  59. } else if(dotSelectFeatures.length === features.length){
  60. selectfeatures = dotSelectFeatures;
  61. } else if(algoSelectFeatures.length === features.length){
  62. selectfeatures = algoSelectFeatures;
  63. } else if(dotSelectFeatures.length > 0 && algoSelectFeatures.length > 0 && otherFeatures.length === 0 ){
  64. selectfeatures = features;
  65. } else if(otherFeatures.length > 0){
  66. selectfeatures = features;
  67. }
  68. var selectfeature = selectfeatures[0];
  69. var styleObject = styles[0];
  70. if(selectfeatures.length === sameFeatures.length){
  71. rows = [
  72. { "name": "标号几何ID", "value":selectfeature.symbolType, "group": group[0] },
  73. { "name": "标号库ID", "value": selectfeature.libID, "group": group[0] },
  74. { "name": "标号Code", "value": selectfeature.code, "group": group[0] },
  75. { "name": "标号名字", "value": selectfeature.symbolName, "group": group[0]}
  76. ];
  77. }
  78. //标号锁定
  79. var lockedObj = new Object();
  80. lockedObj.group = group[1];
  81. lockedObj.name = displayName[0];
  82. lockedObj.editor = {"type": 'checkbox', "options": {"on": true, "off": false}};
  83. lockedObj.value = checkboxValueToString(selectfeature.getLocked());
  84. //标号可见性
  85. var visibilityObj = new Object();
  86. visibilityObj.group = group[2];
  87. visibilityObj.name = displayName[1];
  88. visibilityObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getDisplayRows()}};
  89. //visibilityObj.value = displayToString(selectfeature.style.display);
  90. visibilityObj.value = displayToString(styleObject.display);
  91. rows.push(lockedObj);
  92. if(selectfeature.getLocked()) {
  93. return rows;
  94. }
  95. rows.push(visibilityObj);
  96. if(selectfeatures.length===sameFeatures.length || selectfeatures.length===dotSelectFeatures.length ||selectfeatures.length===algoSelectFeatures.length) {
  97. rows = rows.concat(symbolPropertyObject(selectfeature,styleObject));
  98. }
  99. //addExtendProperty(rows,selectfeature);
  100. return rows;
  101. }
  102. function checkboxValueToString(checkboxValue){
  103. if(checkboxValue === true){
  104. return "true";
  105. } else if(checkboxValue === false){
  106. return "false";
  107. }
  108. }
  109. function fromCheckboxValue(checkboxStr){
  110. if(checkboxStr === "true"){
  111. return true;
  112. } else if(checkboxStr === "false"){
  113. return false;
  114. }
  115. }
  116. /***
  117. * 对象可见性
  118. */
  119. function getDisplayRows() {
  120. var rows = [];
  121. rows.push({"value": "display", "text": "显示"});
  122. rows.push({"value": "none", "text": "不显示"});
  123. return rows;
  124. }
  125. function displayToString(display) {
  126. if(display &&display === "none"){
  127. return "不显示";
  128. }
  129. return "显示";
  130. }
  131. /**
  132. * 8C使用线型
  133. */
  134. function get8CLineStyleRows() {
  135. var rows = [];
  136. rows.push({"value": "solid", "text": "solid"});
  137. rows.push({"value": "dot", "text": "dot"});
  138. rows.push({"value": "dash", "text": "dash"});
  139. rows.push({"value": "dashdot", "text": "dashdot"});
  140. rows.push({"value": "longdash", "text": "longdash"});
  141. rows.push({"value": "longdashdot", "text": "longdashdot"});
  142. return rows;
  143. }
  144. /**
  145. * 9D使用线型
  146. */
  147. function lineStyleToString(lineStyle) {
  148. if(lineStyle == 1)
  149. return "长虚线";
  150. else if(lineStyle == 2)
  151. return "由点构成的直线";
  152. else if(lineStyle == 3)
  153. return "由线划线段组成的直线";
  154. else if(lineStyle == 4)
  155. return "由重复的线划点图案构成的直线";
  156. else if(lineStyle == 0)
  157. return "实线";
  158. else if(lineStyle)
  159. return "实线";
  160. }
  161. function getLineStyleRows() {
  162. var rows = [];
  163. rows.push({"value": "0", "text": "实线"});//实线(solid)
  164. rows.push({"value": "1", "text": "长虚线"});//长虚线(longdash) //虚线(dash)
  165. rows.push({"value": "2", "text": "由点构成的直线"});//由点构成的直线(dot)
  166. rows.push({"value": "3", "text": "由线划线段组成的直线"});//由线划线段组成的直线(dashdot)(longdashdot)
  167. rows.push({"value": "4", "text": "由重复的线划点图案构成的直线"});//由重复的划线点图案构成的直线
  168. return rows;
  169. }
  170. /**
  171. *注记位置
  172. */
  173. function getAnnotationRows(geometry){
  174. var annotations = [];
  175. annotations.push({"value": "0", "text": "左上"});
  176. annotations.push({"value": "1", "text": "左下"});
  177. annotations.push({"value": "2", "text": "右上"});
  178. annotations.push({"value": "3", "text": "右下"});
  179. annotations.push({"value": "4", "text": "上"});
  180. annotations.push({"value": "5", "text": "下"});
  181. annotations.push({"value": "6", "text": "左"});
  182. annotations.push({"value": "7", "text": "右"});
  183. if(geometry.symbolData && geometry.symbolData.middleMarkExist)
  184. annotations.push({"value": "8", "text": "中间"});
  185. return annotations;
  186. }
  187. function annotationToString(annotation) {
  188. if(annotation === 0)
  189. return "左上";
  190. else if(annotation === 1)
  191. return "左下";
  192. else if(annotation === 2)
  193. return "右上";
  194. else if(annotation === 3)
  195. return "右下";
  196. else if(annotation === 4)
  197. return "上";
  198. else if(annotation === 5)
  199. return "下";
  200. else if(annotation === 6)
  201. return "左";
  202. else if(annotation === 7)
  203. return "右";
  204. else if(annotation === 8)
  205. return "中间";
  206. }
  207. /**
  208. * 标号级别
  209. */
  210. function symbolRankToString(symbolRank) {
  211. if(symbolRank == 0)
  212. return "无级别";
  213. else if(symbolRank == 1)
  214. return "军区级";
  215. else if(symbolRank == 2)
  216. return "副大军区级";
  217. else if(symbolRank == 3)
  218. return "集团军级";
  219. else if(symbolRank == 4)
  220. return "师级";
  221. else if(symbolRank == 5)
  222. return "旅级";
  223. else if(symbolRank == 6)
  224. return "团级";
  225. else if(symbolRank == 7)
  226. return "营级";
  227. else if(symbolRank == 8)
  228. return "连级";
  229. else if(symbolRank == 9)
  230. return "排级";
  231. }
  232. function getSymbolRankRows(geometry) {
  233. var symbolRanks = [];
  234. if(geometry.symbolData && geometry.symbolData.symbolRanks){
  235. symbolRanks = geometry.symbolData.symbolRanks;
  236. }
  237. var rows = [];
  238. rows.push({"value": "0", "text": "无级别"});
  239. for(var i = 0; i < symbolRanks.length; i++)
  240. {
  241. if(symbolRanks[i] == 1)
  242. rows.push({"value": "1", "text": "军区级"});
  243. else if(symbolRanks[i] == 2)
  244. rows.push({"value": "2", "text": "副大军区级"});
  245. else if(symbolRanks[i] == 3)
  246. rows.push({"value": "3", "text": "集团军级"});
  247. else if(symbolRanks[i] == 4)
  248. rows.push({"value": "4", "text": "师级"});
  249. else if(symbolRanks[i] == 5)
  250. rows.push({"value": "5", "text": "旅级"});
  251. else if(symbolRanks[i] == 6)
  252. rows.push({"value": "6", "text": "团级"});
  253. else if(symbolRanks[i] == 7)
  254. rows.push({"value": "7", "text": "营级"});
  255. else if(symbolRanks[i] == 8)
  256. rows.push({"value": "8", "text": "连级"});
  257. else if(symbolRanks[i] == 9)
  258. rows.push({"value": "9", "text": "排级"});
  259. }
  260. return rows;
  261. }
  262. /**
  263. * 衬线
  264. */
  265. function surroundLineTypeToString(symbolType, surroundLineType) {
  266. if(symbolType === SuperMap.Plot.SymbolType.DOTSYMBOL){
  267. if(surroundLineType === 0)
  268. return "无衬线";
  269. else if(surroundLineType === 1)
  270. return "有衬线";
  271. } else {
  272. if(surroundLineType === 0)
  273. return "无衬线";
  274. else if(surroundLineType === 1)
  275. return "内侧衬线";
  276. else if(surroundLineType === 2)
  277. return "外侧衬线";
  278. else if(surroundLineType === 3)
  279. return "双侧衬线";
  280. }
  281. }
  282. function getSurroundLineTypeRows(symbolType) {
  283. var rows = [];
  284. if(symbolType === SuperMap.Plot.SymbolType.DOTSYMBOL){
  285. rows.push({"value": "0", "text": "无衬线"});
  286. rows.push({"value": "1", "text": "有衬线"});
  287. } else {
  288. rows.push({"value": "0", "text": "无衬线"});
  289. rows.push({"value": "1", "text": "内侧衬线"});
  290. rows.push({"value": "2", "text": "外侧衬线"});
  291. rows.push({"value": "3", "text": "双侧衬线"});
  292. }
  293. return rows;
  294. }
  295. /**
  296. * 填充
  297. */
  298. function fillGradientModeToString(fillGradientMode) {
  299. if(fillGradientMode === "NONE"){
  300. return "无渐变";
  301. } else if(fillGradientMode === "LINEAR"){
  302. return "线性渐变";
  303. } else if(fillGradientMode === "RADIAL"){
  304. return "辐射渐变";
  305. } else {
  306. return "无渐变";
  307. }
  308. }
  309. function getFillGradientModeRows() {
  310. var rows = [];
  311. rows.push({"value": "NONE", "text": "无渐变"});
  312. rows.push({"value": "LINEAR", "text": "线性渐变"});
  313. rows.push({"value": "RADIAL", "text": "辐射渐变"});
  314. return rows;
  315. }
  316. function fillToString(fillSymbolID,selectfeature) {
  317. if(fillSymbolID === 0){
  318. return "实填充";
  319. } else if(fillSymbolID === 1){
  320. return "无填充";
  321. }
  322. if (selectfeature.symbolType !== SuperMap.Plot.SymbolType.SYMBOLTEXT) {
  323. if(fillSymbolID === 2){
  324. return "向上斜填充";
  325. } else if(fillSymbolID === 3){
  326. return "十字填充";
  327. } else if(fillSymbolID === 4){
  328. return "交叉填充";
  329. } else if(fillSymbolID === 5){
  330. return "反斜线填充";
  331. } else if(fillSymbolID === 6){
  332. return "水平填充";
  333. } else if(fillSymbolID === 7){
  334. return "竖直填充";
  335. }
  336. }
  337. }
  338. function getFillRows(selectfeature) {
  339. var rows = [];
  340. rows.push({"value": 0, "text": "实填充"});
  341. rows.push({"value": 1, "text": "无填充"});
  342. if (selectfeature.symbolType !== SuperMap.Plot.SymbolType.SYMBOLTEXT) {
  343. rows.push({"value": 2, "text": "向上斜填充"});
  344. rows.push({"value": 3, "text": "十字填充"});
  345. rows.push({"value": 4, "text": "交叉填充"});
  346. rows.push({"value": 5, "text": "反斜线填充"});
  347. rows.push({"value": 6, "text": "水平填充"});
  348. rows.push({"value": 7, "text": "竖直填充"});
  349. }
  350. return rows;
  351. }
  352. /**
  353. * 偏移线类型
  354. */
  355. function positionOffsetTypeToString(positionOffsetType) {
  356. if(positionOffsetType === 0){
  357. return "直线";
  358. } else if(positionOffsetType === 1){
  359. return "线粗渐变";
  360. }
  361. }
  362. function getPositionOffsetTypeRows() {
  363. var rows = [];
  364. rows.push({"value": "0", "text": "直线"});
  365. rows.push({"value": "1", "text": "线粗渐变"});
  366. return rows;
  367. }
  368. /**
  369. * 沿线注记
  370. */
  371. function getShowRows() {
  372. var rows = [];
  373. rows.push({"value": "true", "text": "显示"});
  374. rows.push({"value": "false", "text": "不显示"});
  375. return rows;
  376. }
  377. function showToString(show){
  378. if(show === true){
  379. return "显示";
  380. } else if(show === false){
  381. return "不显示";
  382. }
  383. }
  384. function relLineTextToString(relLineText) {
  385. if(relLineText === SuperMap.Plot.RelLineText.ONLINE)
  386. return "线上";
  387. else if(relLineText === SuperMap.Plot.RelLineText.ONLEFTLINE)
  388. return "线左";
  389. else if(relLineText === SuperMap.Plot.RelLineText.ONRIGHTLINE)
  390. return "线右";
  391. else if(relLineText === SuperMap.Plot.RelLineText.ONBOTHLINE)
  392. return "双侧";
  393. }
  394. function getRelLineTextRows(){
  395. var annotations = [];
  396. annotations.push({"value": "0", "text": "线上"});
  397. annotations.push({"value": "1", "text": "线左"});
  398. annotations.push({"value": "2", "text": "线右"});
  399. annotations.push({"value": "3", "text": "双侧"});
  400. return annotations;
  401. }
  402. /***
  403. * 对象间连线
  404. */
  405. function lineRelationTypeToString(lineRelationType) {
  406. if (lineRelationType == 0)
  407. return "实直线";
  408. else if (lineRelationType == 1)
  409. return "虚直线";
  410. else if (lineRelationType == 2)
  411. return "箭头线";
  412. }
  413. function getLineRelationTypeRows() {
  414. var rows = [];
  415. rows.push({"value": "0", "text": "实直线"});
  416. rows.push({"value": "1", "text": "虚直线"});
  417. rows.push({"value": "2", "text": "箭头线"});
  418. return rows;
  419. }
  420. /**
  421. * 航线节点类型
  422. */
  423. function routeNodeTypeToString(routeNodeType) {
  424. if (routeNodeType === SuperMap.Plot.RouteNodeType.AIMING)
  425. return "瞄准点";
  426. else if (routeNodeType == SuperMap.Plot.RouteNodeType.COMMONROUTE)
  427. return "普通航路点";
  428. else if (routeNodeType == SuperMap.Plot.RouteNodeType.EXPANDING)
  429. return "展开点";
  430. else if (routeNodeType == SuperMap.Plot.RouteNodeType.INITIAL)
  431. return "初始点";
  432. else if (routeNodeType == SuperMap.Plot.RouteNodeType.LANCH)
  433. return "发射点";
  434. else if (routeNodeType == SuperMap.Plot.RouteNodeType.RENDEZVOUS)
  435. return "会合点";
  436. else if (routeNodeType == SuperMap.Plot.RouteNodeType.STANDBY)
  437. return "待机点";
  438. else if (routeNodeType == SuperMap.Plot.RouteNodeType.SUPPLY)
  439. return "补给点";
  440. else if (routeNodeType == SuperMap.Plot.RouteNodeType.TAKEOFF)
  441. return "起飞点";
  442. else if (routeNodeType == SuperMap.Plot.RouteNodeType.TURNING)
  443. return "转弯点";
  444. else if (routeNodeType == SuperMap.Plot.RouteNodeType.VISUALINITAL)
  445. return "可视初始点";
  446. else if (routeNodeType == SuperMap.Plot.RouteNodeType.VOLLEY)
  447. return "齐射点";
  448. else if (routeNodeType == SuperMap.Plot.RouteNodeType.WEAPONLAUNCH)
  449. return "武器发射点";
  450. else if (routeNodeType == SuperMap.Plot.RouteNodeType.TARGET)
  451. return "目标点";
  452. else if (routeNodeType == SuperMap.Plot.RouteNodeType.ATTACK)
  453. return "攻击点";
  454. else if (routeNodeType == SuperMap.Plot.RouteNodeType.SUPPRESS)
  455. return "压制点";
  456. else if (routeNodeType == SuperMap.Plot.RouteNodeType.EIGHTSPIRAL)
  457. return "八字盘旋点";
  458. else if (routeNodeType == SuperMap.Plot.RouteNodeType.HAPPYVALLEY)
  459. return "跑马圈点";
  460. }
  461. function getRouteNodeTypeRows() {
  462. var rows = [];
  463. rows.push({"value": "AIMING", "text": "瞄准点"});
  464. rows.push({"value": "COMMONROUTE", "text": "普通航路点"});
  465. rows.push({"value": "EXPANDING", "text": "展开点"});
  466. rows.push({"value": "INITIAL", "text": "初始点"});
  467. rows.push({"value": "LANCH", "text": "发射点"});
  468. rows.push({"value": "RENDEZVOUS", "text": "会合点"});
  469. rows.push({"value": "STANDBY", "text": "待机点"});
  470. rows.push({"value": "SUPPLY", "text": "补给点"});
  471. rows.push({"value": "TAKEOFF", "text": "起飞点"});
  472. rows.push({"value": "TURNING", "text": "转弯点"});
  473. rows.push({"value": "VISUALINITAL", "text": "可视初始点"});
  474. rows.push({"value": "VOLLEY", "text": "齐射点"});
  475. rows.push({"value": "WEAPONLAUNCH", "text": "武器发射点"});
  476. rows.push({"value": "TARGET", "text": "目标点"});
  477. rows.push({"value": "ATTACK", "text": "攻击点"});
  478. rows.push({"value": "SUPPRESS", "text": "压制点"});
  479. rows.push({"value": "EIGHTSPIRAL", "text": "八字盘旋点"});
  480. rows.push({"value": "HAPPYVALLEY", "text": "跑马圈点"});
  481. return rows;
  482. }
  483. /**
  484. *箭头线
  485. */
  486. function arrowTypeToString(arrowType) {
  487. if (arrowType == 0)
  488. return "双线箭头";
  489. else if (arrowType == 1)
  490. return "实心三角形";
  491. else if (arrowType == 2)
  492. return "无箭头";
  493. }
  494. function getArrowTypeRows() {
  495. var rows = [];
  496. rows.push({"value": "0", "text": "双线箭头"});
  497. rows.push({"value": "1", "text": "实心三角形"});
  498. rows.push({"value": "2", "text": "无箭头"});
  499. return rows;
  500. }
  501. /**
  502. * 扇形区域
  503. */
  504. function radiusTypeToString(radiusType) {
  505. if (radiusType == 0)
  506. return "不显示";
  507. else if (radiusType == 1)
  508. return "直线";
  509. else if (radiusType == 2)
  510. return "箭头线";
  511. }
  512. function getRadiusTypeRows() {
  513. var rows = [];
  514. rows.push({"value": "0", "text": "不显示"});
  515. rows.push({"value": "1", "text": "直线"});
  516. rows.push({"value": "2", "text": "箭头线"});
  517. return rows;
  518. }
  519. /**
  520. * 标注框
  521. */
  522. function textBoxTypeToString(textBoxType) {
  523. if (textBoxType == 0)
  524. return "带角矩形边框";
  525. else if (textBoxType == 1)
  526. return "矩形边框";
  527. else if (textBoxType == 3)
  528. return "无边框";
  529. }
  530. function getTextBoxTypeRows() {
  531. var rows = [];
  532. rows.push({"value": "0", "text": "带角矩形边框"});
  533. rows.push({"value": "1", "text": "矩形边框"});
  534. rows.push({"value": "3", "text": "无边框"});
  535. return rows;
  536. }
  537. /**
  538. * 线型标注框
  539. */
  540. function lineMarkingTypeToString(lineMarkingType) {
  541. if(lineMarkingType === 1){
  542. return "矩形边框";
  543. } else if(lineMarkingType === 2){
  544. return "线型底边";
  545. }
  546. }
  547. function getLineMarkingTypeRows() {
  548. var rows = [];
  549. rows.push({"value": "1", "text": "矩形边框"});
  550. rows.push({"value": "2", "text": "线型底边"});
  551. return rows;
  552. }
  553. /**
  554. * 复合箭头
  555. * 箭头、箭身、箭尾
  556. */
  557. function getArrowHeadTypeRows() {
  558. var rows = [];
  559. rows.push({"value": "0", "text": "双线箭头"});
  560. rows.push({"value": "2", "text": "燕尾箭头"});
  561. rows.push({"value": "3", "text": "实心三角形"});
  562. rows.push({"value": "6", "text": "新燕尾箭头"});
  563. rows.push({"value": "-1", "text": "无箭头"});
  564. return rows;
  565. }
  566. function arrowHeadTypeToString(arrowHeadType) {
  567. if (arrowHeadType == 0)
  568. return "双线箭头";
  569. else if (arrowHeadType == 2)
  570. return "燕尾箭头";
  571. else if (arrowHeadType == 3)
  572. return "实心三角形";
  573. else if (arrowHeadType == 6)
  574. return "新燕尾箭头";
  575. else if (arrowHeadType == -1)
  576. return "无箭头";
  577. }
  578. function arrowBodyTypeToString(arrowBodyType) {
  579. if (arrowBodyType == 0)
  580. return "折线";
  581. else if (arrowBodyType == 1)
  582. return "贝塞尔曲线";
  583. else if (arrowBodyType == 5)
  584. return "新增箭身";
  585. }
  586. function getArrowBodyTypeRows() {
  587. var rows = [];
  588. rows.push({"value": "0", "text": "折线"});
  589. rows.push({"value": "1", "text": "贝塞尔曲线"});
  590. rows.push({"value": "5", "text": "新增箭身"});
  591. return rows;
  592. }
  593. function arrowTailTypeToString(arrowTailType) {
  594. if (arrowTailType == 0)
  595. return "无箭尾";
  596. else if (arrowTailType == 1)
  597. return "直线箭尾";
  598. else if (arrowTailType == 3)
  599. return "燕尾箭尾";
  600. }
  601. function getArrowTailTypeRows() {
  602. var rows = [];
  603. rows.push({"value": "0", "text": "无箭尾"});
  604. rows.push({"value": "1", "text": "直线箭尾"});
  605. rows.push({"value": "3", "text": "燕尾箭尾"});
  606. return rows;
  607. }
  608. /**
  609. * 线面标号子标号
  610. */
  611. function libIDToString(libID) {
  612. if (libID == 421)
  613. return "421(警用库)";
  614. else if (libID == 100)
  615. return "100(军队库)";
  616. else if (libID == 123)
  617. return "123(武警库)";
  618. else if (libID == 900)
  619. return "900(人防库)";
  620. }
  621. function subSymbolsTypeString(subSymbolsLength,geometry){
  622. if(subSymbolsLength===0){
  623. return "";
  624. }else {
  625. if(geometry.libID===100){
  626. if(geometry.getSubSymbols()[0].code === 100){
  627. return "陆军";
  628. }else if(geometry.getSubSymbols()[0].code === 200){
  629. return "海军";
  630. }else if(geometry.getSubSymbols()[0].code === 300) {
  631. return "空军";
  632. }
  633. }else if(geometry.libID===123){
  634. if(geometry.getSubSymbols()[0].code === 10101){
  635. return "武装警察部队";
  636. }else if(geometry.getSubSymbols()[0].code === 10102){
  637. return "防爆装甲";
  638. }else if(geometry.getSubSymbols()[0].code === 10103) {
  639. return "火炮";
  640. }
  641. }else if(geometry.libID===900){
  642. if(geometry.getSubSymbols()[0].code === 910200){
  643. return "人民防空重点城市";
  644. }else if(geometry.getSubSymbols()[0].code === 910300){
  645. return "人民防空基本指挥所";
  646. }else if(geometry.getSubSymbols()[0].code === 910402) {
  647. return "水路抢修专业队";
  648. }
  649. }else if(geometry.libID===0){
  650. if(geometry.getSubSymbols()[0].code === 9){
  651. return "刑警";
  652. }else if(geometry.getSubSymbols()[0].code === 80103){
  653. return "交警";
  654. }else if(geometry.getSubSymbols()[0].code === 80109){
  655. return "专业警";
  656. }
  657. }
  658. }
  659. }
  660. function getSubSymbolsTypeRows(geometry){
  661. var rows = [];
  662. rows.push({"value": "0", "text": ""});
  663. if(geometry.libID===100){
  664. rows.push({"value": "100", "text": "陆军"});
  665. rows.push({"value": "200", "text": "海军"});
  666. rows.push({"value": "300", "text": "空军"});
  667. }else if(geometry.libID===123){
  668. rows.push({"value": "10101", "text": "武装警察部队"});
  669. rows.push({"value": "10102", "text": "防爆装甲"});
  670. rows.push({"value": "10103", "text": "火炮"});
  671. }else if(geometry.libID===900){
  672. rows.push({"value": "910200", "text": "人民防空重点城市"});
  673. rows.push({"value": "910300", "text": "人民防空基本指挥所"});
  674. rows.push({"value": "910402", "text": "水路抢修专业队"});
  675. }else if(geometry.libID===0){
  676. rows.push({"value": "9", "text": "刑警"});
  677. rows.push({"value": "80103", "text": "交警"});
  678. rows.push({"value": "80109", "text": "专业警"});
  679. }
  680. return rows;
  681. }
  682. /**
  683. * 文字对齐
  684. * 注记指示框、标注框、多角标注框、线型标注框
  685. */
  686. function fontAlignTypeToString(alignType) {
  687. if(alignType === 'lm')
  688. return "左对齐";
  689. else if(alignType === 'rm')
  690. return "右对齐";
  691. else if(alignType === 'cm')
  692. return "中间对齐";
  693. else if(alignType === 'lt')
  694. return "左上对齐";
  695. else if(alignType === 'lb')
  696. return "左下对齐";
  697. else if(alignType === 'rt')
  698. return "右上对齐";
  699. else if(alignType === 'rb')
  700. return "右下对齐";
  701. }
  702. function getFontAlignTypeRows() {
  703. var rows = [];
  704. rows.push({"value": "0", "text": "左对齐"});
  705. rows.push({"value": "1", "text": "右对齐"});
  706. rows.push({"value": "2", "text": "居中对齐"});
  707. rows.push({"value": "3", "text": "左上对齐"});
  708. rows.push({"value": "4", "text": "左下对齐"});
  709. rows.push({"value": "5", "text": "右上对齐"});
  710. rows.push({"value": "6", "text": "右下对齐"});
  711. return rows;
  712. }
  713. function fontAlignTypeValue (value) {
  714. if (value === '0'){
  715. return 'lm';
  716. }else if(value === '1'){
  717. return 'rm';
  718. }else if (value === '2'){
  719. return 'cm';
  720. }else if (value === '3'){
  721. return 'lt';
  722. }else if (value === '4'){
  723. return 'lb';
  724. }else if (value === '5'){
  725. return 'rt';
  726. }else if (value === '6'){
  727. return 'rb';
  728. }
  729. }
  730. //判断标号类型分类
  731. function checkSymbolType(selectfeature){
  732. if( selectfeature.symbolType === SuperMap.Plot.SymbolType.GROUPOBJECT ||
  733. selectfeature.symbolType === SuperMap.Plot.SymbolType.FLAGGROUP||
  734. selectfeature.symbolType === SuperMap.Plot.SymbolType.AIRROUTE||
  735. selectfeature.symbolType === SuperMap.Plot.SymbolType.NAVYROUTE||
  736. selectfeature.symbolType === SuperMap.Plot.SymbolType.MISSILEROUTE||
  737. selectfeature.symbolType === SuperMap.Plot.SymbolType.ROUTENODE||
  738. selectfeature.symbolType === SuperMap.Plot.SymbolType.LITERATESIGN||
  739. selectfeature.symbolType === SuperMap.Plot.SymbolType.SATELLITE||
  740. selectfeature.symbolType === SuperMap.Plot.SymbolType.SATELLITETIMEWINDOWS||
  741. selectfeature.symbolType === SuperMap.Plot.SymbolType.NAVYDEPLOYMENT||
  742. selectfeature.symbolType === SuperMap.Plot.SymbolType.AIRDEPLOYMENT||
  743. selectfeature.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT||
  744. selectfeature.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT1 ||
  745. selectfeature.symbolType===SuperMap.Plot.SymbolType.TEXTSYMBOL
  746. ) {
  747. return false;
  748. }else{
  749. return true;
  750. }
  751. }
  752. function isCanAddText(selectfeature){
  753. if( selectfeature.symbolType === SuperMap.Plot.SymbolType.POLYLINESYMBOL ||//直线
  754. selectfeature.symbolType === SuperMap.Plot.SymbolType.PARALLELOGRAM ||//平行四边形
  755. selectfeature.symbolType === SuperMap.Plot.SymbolType.CIRCLESYMBOL ||//圆
  756. selectfeature.symbolType === SuperMap.Plot.SymbolType.ELLIPSESYMBOL ||//椭圆
  757. selectfeature.symbolType === SuperMap.Plot.SymbolType.REGULARPOLYGON ||//正多边形
  758. selectfeature.symbolType === SuperMap.Plot.SymbolType.ARBITRARYPOLYGONSYMBOL ||//任意多边形
  759. selectfeature.symbolType === SuperMap.Plot.SymbolType.POLYBEZIERSYMBOL ||//贝塞尔曲线
  760. selectfeature.symbolType === SuperMap.Plot.SymbolType.POLYBEZIERCLOSESYMBOL ||//闭合贝塞尔曲线
  761. selectfeature.symbolType === SuperMap.Plot.SymbolType.KIDNEY ||//集结地
  762. selectfeature.symbolType === SuperMap.Plot.SymbolType.BRACESYMBOL ||//大括号
  763. selectfeature.symbolType === SuperMap.Plot.SymbolType.TRAPEZOIDSYMBOL ||//梯形
  764. selectfeature.symbolType === SuperMap.Plot.SymbolType.RECTANGLESYMBOL ||//矩形
  765. selectfeature.symbolType === SuperMap.Plot.SymbolType.CHORDSYMBOL ||//弓形
  766. selectfeature.symbolType === SuperMap.Plot.SymbolType.PIESYMBOL ||//扇形
  767. selectfeature.symbolType === SuperMap.Plot.SymbolType.ARCSYMBOL ||//弧线
  768. selectfeature.symbolType === SuperMap.Plot.SymbolType.PARALLELLINE ||//平行线
  769. selectfeature.symbolType === SuperMap.Plot.SymbolType.ANNOFRAMESYMBOL ||//注记指示框
  770. selectfeature.symbolType === SuperMap.Plot.SymbolType.CONCENTRICCIRCLE||//同心圆
  771. selectfeature.symbolType === SuperMap.Plot.SymbolType.COMBINATIONALCIRCLE||//组合圆
  772. selectfeature.symbolType === SuperMap.Plot.SymbolType.ANNOFRAMESYMBOLM ||//多角标注框
  773. selectfeature.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXTBOX ||//标注框
  774. selectfeature.symbolType === SuperMap.Plot.SymbolType.FREECURVE ||//自由曲线
  775. selectfeature.symbolType === SuperMap.Plot.SymbolType.NODECHAIN ||//节点链
  776. selectfeature.symbolType === SuperMap.Plot.SymbolType.RUNWAY ||//跑道形
  777. selectfeature.symbolType === SuperMap.Plot.SymbolType.CURVEEIGHT ||//8字形
  778. selectfeature.symbolType === SuperMap.Plot.SymbolType.ARROWLINE ||//箭头线
  779. selectfeature.symbolType === SuperMap.Plot.SymbolType.PATHTEXT ||//沿线注记
  780. selectfeature.symbolType === SuperMap.Plot.SymbolType.POLYGONREGION ||//多边形区域
  781. selectfeature.symbolType === SuperMap.Plot.SymbolType.ARCREGION ||//扇形区域
  782. selectfeature.symbolType === SuperMap.Plot.SymbolType.LINEMARKING //线型标注
  783. ){
  784. return true;
  785. }
  786. }
  787. function symbolPropertyObject(selectfeature,styleObject) {
  788. //线形:线宽
  789. var lineWidthObj = new Object();
  790. lineWidthObj.group = group[4];
  791. lineWidthObj.name = displayLineStyleName[0];
  792. lineWidthObj.editor = "text";
  793. if(styleObject.weight !==undefined){
  794. lineWidthObj.value = styleObject.weight;
  795. }else{
  796. if(selectfeature.symbolType === SuperMap.Plot.SymbolType.GROUPOBJECT){
  797. lineWidthObj.value = selectfeature.getStrokeWidth();
  798. }else{
  799. lineWidthObj.value = styleObject.strokeWidth;
  800. }
  801. }
  802. //线形:线色
  803. var lineColorObj = new Object();
  804. lineColorObj.group = group[4];
  805. lineColorObj.name = displayLineStyleName[1];
  806. lineColorObj.editor = "colorpicker";
  807. if(styleObject.color !==undefined){
  808. lineColorObj.value = styleObject.color;
  809. }else{
  810. if(selectfeature.symbolType === SuperMap.Plot.SymbolType.GROUPOBJECT){
  811. lineColorObj.value = selectfeature.getStrokeColor();
  812. }else{
  813. lineColorObj.value = styleObject.strokeColor;
  814. }
  815. }
  816. //线形:线型
  817. var lineStyleObj = new Object();
  818. lineStyleObj.group = group[4];
  819. lineStyleObj.name = displayLineStyleName[2];
  820. if(styleObject.lineSymbolID !== undefined){
  821. lineStyleObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getLineStyleRows()}};
  822. lineStyleObj.value = lineStyleToString(styleObject.lineSymbolID);
  823. }else{
  824. lineStyleObj.editor = { "type": 'combobox', "options": { "valueField": 'value', "textField": 'text', "data": get8CLineStyleRows() }};
  825. lineStyleObj.value = styleObject.strokeDashstyle;
  826. }
  827. //线形:线透明度
  828. var lineOpaqueRateObj = new Object();
  829. lineOpaqueRateObj.group = group[4];
  830. lineOpaqueRateObj.name = displayLineStyleName[3];
  831. lineOpaqueRateObj.editor = "text";
  832. if( styleObject.opacity !==undefined){
  833. lineOpaqueRateObj.value = styleObject.opacity;
  834. }else{
  835. lineOpaqueRateObj.value = styleObject.strokeOpacity;
  836. }
  837. //衬线:衬线类型
  838. var surroundLineTypeObj = new Object();
  839. surroundLineTypeObj.group = group[5];
  840. surroundLineTypeObj.name = displaySurroundLineName[0];
  841. surroundLineTypeObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getSurroundLineTypeRows(selectfeature.symbolType)}};
  842. if(checkSymbolType(selectfeature)===true){
  843. surroundLineTypeObj.value = surroundLineTypeToString(selectfeature.symbolType, selectfeature.getSurroundLineType());
  844. }
  845. //衬线:衬线宽
  846. var surroundLineWidthObj = new Object();
  847. surroundLineWidthObj.group = group[5];
  848. surroundLineWidthObj.name = displaySurroundLineName[1];
  849. surroundLineWidthObj.editor = "text";
  850. surroundLineWidthObj.value = styleObject.surroundLineWidth;
  851. //衬线:衬线色
  852. var surroundLineColorObj = new Object();
  853. surroundLineColorObj.group = group[5];
  854. surroundLineColorObj.name = displaySurroundLineName[2];
  855. surroundLineColorObj.editor = "colorpicker";
  856. surroundLineColorObj.value = styleObject.surroundLineColor;
  857. //衬线:衬线透明度
  858. var surroundLineColorOpaObj = new Object();
  859. surroundLineColorOpaObj.group = group[5];
  860. surroundLineColorOpaObj.name = displaySurroundLineName[3];
  861. surroundLineColorOpaObj.editor = "text";
  862. surroundLineColorOpaObj.value = styleObject.surroundLineColorOpacity;
  863. //填充:填充
  864. var fillObj = new Object();
  865. fillObj.group = group[6];
  866. fillObj.name = displayFillStyleName[0];
  867. fillObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getFillRows(selectfeature)}};
  868. fillObj.value = fillToString(parseFloat(styleObject.fillSymbolID),selectfeature);
  869. //填充:填充色
  870. var fillforeColorObj = new Object();
  871. fillforeColorObj.group = group[6];
  872. fillforeColorObj.name = displayFillStyleName[1];
  873. fillforeColorObj.editor = "colorpicker";
  874. fillforeColorObj.value = styleObject.fillColor;
  875. //填充:填充透明度
  876. var fillOpaqueRateObj = new Object();
  877. fillOpaqueRateObj.group = group[6];
  878. fillOpaqueRateObj.name = displayFillStyleName[2];
  879. fillOpaqueRateObj.editor = "text";
  880. fillOpaqueRateObj.value = styleObject.fillOpacity;
  881. //填充:渐变填充方式
  882. var fillGradientModeObj = new Object();
  883. fillGradientModeObj.group = group[6];
  884. fillGradientModeObj.name = displayFillStyleName[3];
  885. fillGradientModeObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getFillGradientModeRows()}};
  886. fillGradientModeObj.value = fillGradientModeToString(styleObject.fillGradientMode);
  887. //填充:填充背景色
  888. var fillBackColorObj = new Object();
  889. fillBackColorObj.group = group[6];
  890. fillBackColorObj.name = displayFillStyleName[4];
  891. fillBackColorObj.editor = "colorpicker";
  892. fillBackColorObj.value = styleObject.fillBackColor;
  893. //填充:填充背景透明度
  894. var fillBackOpacityObj = new Object();
  895. fillBackOpacityObj.group = group[6];
  896. fillBackOpacityObj.name = displayFillStyleName[5];
  897. fillBackOpacityObj.editor = "text";
  898. fillBackOpacityObj.value = styleObject.fillBackOpacity;
  899. //填充:渐变填充角度
  900. var fillBackAngleObj = new Object();
  901. fillBackAngleObj.group = group[6];
  902. fillBackAngleObj.name = displayFillStyleName[6];
  903. fillBackAngleObj.editor = "text";
  904. fillBackAngleObj.value = styleObject.fillAngle;
  905. //填充:渐变填充水平偏移
  906. var fillBackXObj = new Object();
  907. fillBackXObj.group = group[6];
  908. fillBackXObj.name = displayFillStyleName[7];
  909. fillBackXObj.editor = "text";
  910. fillBackXObj.value = styleObject.fillCenterOffsetX;
  911. //填充:渐变填充竖直偏移
  912. var fillBackYObj = new Object();
  913. fillBackYObj.group = group[6];
  914. fillBackYObj.name = displayFillStyleName[8];
  915. fillBackYObj.editor = "text";
  916. fillBackYObj.value = styleObject.fillCenterOffsetY;
  917. //注记:注记内容
  918. var textContentObj = new Object();
  919. textContentObj.group = group[7];
  920. textContentObj.name = displayTextContentName[0];
  921. textContentObj.editor = "text";
  922. textContentObj.value = selectfeature.getTextContent();
  923. //注记:注记位置
  924. var markPosObj = new Object();
  925. markPosObj.group = group[7];
  926. markPosObj.name = displayTextContentName[1];
  927. if (selectfeature.symbolType === SuperMap.Plot.SymbolType.PATHTEXT) {
  928. markPosObj.editor = { "type": 'combobox', "options": { "valueField": 'value', "textField": 'text', "data": getRelLineTextRows(selectfeature.getRelLineText()) }};
  929. markPosObj.value = relLineTextToString(selectfeature.getRelLineText());
  930. }else{
  931. markPosObj.editor = { "type": 'combobox', "options": { "valueField": 'value', "textField": 'text', "data": getAnnotationRows(selectfeature) }};
  932. markPosObj.value = annotationToString(selectfeature.getTextPosition());
  933. }
  934. //注记:注记字体大小
  935. var fontSizeObj = new Object();
  936. fontSizeObj.group = group[7];
  937. fontSizeObj.name = displayTextContentName[2];
  938. fontSizeObj.editor = "text";
  939. fontSizeObj.value = styleObject.fontSize;
  940. //注记:注记字体颜色
  941. var fontColorObj = new Object();
  942. fontColorObj.group = group[7];
  943. fontColorObj.name = displayTextContentName[3];
  944. fontColorObj.editor = "colorpicker";
  945. fontColorObj.value = styleObject.fontColor;
  946. //注记:注记字体名称
  947. var fontFamilyObj = new Object();
  948. fontFamilyObj.group = group[7];
  949. fontFamilyObj.name = displayTextContentName[4];
  950. fontFamilyObj.editor = "text";
  951. fontFamilyObj.value = styleObject.fontFamily;
  952. //注记:注记与标号的间距
  953. var fontSpaceObj = new Object();
  954. fontSpaceObj.group = group[7];
  955. fontSpaceObj.name = displayTextContentName[5];
  956. fontSpaceObj.editor = "text";
  957. if (selectfeature.symbolType === SuperMap.Plot.SymbolType.PATHTEXT || selectfeature.symbolType === SuperMap.Plot.SymbolType.DOTSYMBOL){
  958. fontSpaceObj.value = selectfeature.getSpace();
  959. }
  960. //注记:字间距
  961. var fontSpaceObj1 = new Object();
  962. fontSpaceObj1.group = group[7];
  963. fontSpaceObj1.name = displayTextContentName[6];
  964. fontSpaceObj1.editor = "text";
  965. fontSpaceObj1.value = styleObject.fontSpace;
  966. //注记:字宽百分比
  967. var fontPercentObj = new Object();
  968. fontPercentObj.group = group[7];
  969. fontPercentObj.name = displayTextContentName[7];
  970. fontPercentObj.editor = "text";
  971. fontPercentObj.value = styleObject.fontPercent;
  972. //注记:字体描边
  973. var fontStrokeObj = new Object();
  974. fontStrokeObj.group = group[7];
  975. fontStrokeObj.name = displayTextContentName[8];
  976. fontStrokeObj.editor = { "type": 'checkbox', "options":{ "on":true, "off":false }};
  977. fontStrokeObj.value = checkboxValueToString(styleObject.fontStroke);
  978. //注记:描边色
  979. var fontStrokeColorObj = new Object();
  980. fontStrokeColorObj.group = group[7];
  981. fontStrokeColorObj.name = displayTextContentName[9];
  982. fontStrokeColorObj.editor = "colorpicker";
  983. fontStrokeColorObj.value = styleObject.fontStrokeColor;
  984. //注记:描边宽度
  985. var fontStrokeWidthObj = new Object();
  986. fontStrokeWidthObj.group = group[7];
  987. fontStrokeWidthObj.name = displayTextContentName[10];
  988. fontStrokeWidthObj.editor = "text";
  989. fontStrokeWidthObj.value = styleObject.fontStrokeWidth;
  990. //注记:文字背景
  991. var fontBackObj = new Object();
  992. fontBackObj.group = group[7];
  993. fontBackObj.name = displayTextContentName[11];
  994. fontBackObj.editor = { "type": 'checkbox', "options":{ "on":true, "off":false }};
  995. fontBackObj.value = checkboxValueToString(styleObject.fontBackground);
  996. //注记:背景色
  997. var fontBackColorObj = new Object();
  998. fontBackColorObj.group = group[7];
  999. fontBackColorObj.name = displayTextContentName[12];
  1000. fontBackColorObj.editor = "colorpicker";
  1001. fontBackColorObj.value = styleObject.fontBackgroundColor;
  1002. //注记:文字阴影
  1003. var fontShadowObj = new Object();
  1004. fontShadowObj.group = group[7];
  1005. fontShadowObj.name = displayTextContentName[13];
  1006. fontShadowObj.editor = { "type": 'checkbox', "options":{ "on":true, "off":false }};
  1007. fontShadowObj.value = checkboxValueToString(styleObject.fontShadow);
  1008. //注记:阴影色
  1009. var fontShadowColorObj = new Object();
  1010. fontShadowColorObj.group = group[7];
  1011. fontShadowColorObj.name = displayTextContentName[14];
  1012. fontShadowColorObj.editor = "colorpicker";
  1013. fontShadowColorObj.value = styleObject.fontShadowColor;
  1014. //注记:阴影偏移量X
  1015. var fontShadowOffsetXObj = new Object();
  1016. fontShadowOffsetXObj.group = group[7];
  1017. fontShadowOffsetXObj.name = displayTextContentName[15];
  1018. fontShadowOffsetXObj.editor = "text";
  1019. fontShadowOffsetXObj.value = styleObject.fontShadowOffsetX;
  1020. //注记:阴影偏移量Y
  1021. var fontShadowOffsetYObj = new Object();
  1022. fontShadowOffsetYObj.group = group[7];
  1023. fontShadowOffsetYObj.name = displayTextContentName[16];
  1024. fontShadowOffsetYObj.editor = "text";
  1025. fontShadowOffsetYObj.value = styleObject.fontShadowOffsetY;
  1026. var rows = [];
  1027. //线形
  1028. var lineRows = [];
  1029. lineRows.push(lineWidthObj);
  1030. lineRows.push(lineColorObj);
  1031. lineRows.push(lineStyleObj);
  1032. lineRows.push(lineOpaqueRateObj);
  1033. //衬线
  1034. var surroundLineRows =[];
  1035. surroundLineRows.push(surroundLineTypeObj);
  1036. surroundLineRows.push(surroundLineWidthObj);
  1037. surroundLineRows.push(surroundLineColorObj);
  1038. surroundLineRows.push(surroundLineColorOpaObj);
  1039. //填充
  1040. var fillRows =[];
  1041. fillRows.push(fillObj);
  1042. fillRows.push(fillGradientModeObj);
  1043. if(styleObject.fillGradientMode === "NONE" && styleObject.fillSymbolID === 0){
  1044. fillRows.push(fillforeColorObj);
  1045. fillRows.push(fillOpaqueRateObj);
  1046. }else if(styleObject.fillGradientMode === "NONE" &&
  1047. styleObject.fillSymbolID !== 0 &&
  1048. styleObject.fillSymbolID !== 1){
  1049. fillRows.push(fillforeColorObj);
  1050. fillRows.push(fillOpaqueRateObj);
  1051. fillRows.push(fillBackColorObj);
  1052. fillRows.push(fillBackOpacityObj);
  1053. }else if(styleObject.fillGradientMode !== "NONE"){
  1054. fillRows.push(fillforeColorObj);
  1055. fillRows.push(fillOpaqueRateObj);
  1056. fillRows.push(fillBackColorObj);
  1057. if(styleObject.fillGradientMode === "LINEAR"){
  1058. fillRows.push(fillBackAngleObj);
  1059. }
  1060. fillRows.push(fillBackXObj);
  1061. if(styleObject.fillGradientMode === "RADIAL"){
  1062. fillRows.push(fillBackYObj);
  1063. }
  1064. }
  1065. //文字
  1066. var textRows = [];
  1067. textRows.push(textContentObj);
  1068. textRows.push(fontColorObj);
  1069. textRows.push(fontFamilyObj);
  1070. textRows.push(fontSizeObj);
  1071. if (selectfeature.symbolType === SuperMap.Plot.SymbolType.PATHTEXT ||
  1072. selectfeature.symbolType === SuperMap.Plot.SymbolType.DOTSYMBOL) {
  1073. textRows.push(markPosObj);
  1074. if(selectfeature.getTextPosition() !== 8){
  1075. textRows.push(fontSpaceObj);
  1076. }
  1077. }
  1078. if(selectfeature.symbolType === SuperMap.Plot.SymbolType.DOTSYMBOL ||
  1079. selectfeature.symbolType === SuperMap.Plot.SymbolType.TEXTSYMBOL
  1080. ){
  1081. textRows.push(fontPercentObj);
  1082. textRows.push(fontSpaceObj1);
  1083. textRows.push(fontStrokeObj);
  1084. if (styleObject.fontStroke === true) {
  1085. textRows.push(fontStrokeColorObj);
  1086. textRows.push(fontStrokeWidthObj);
  1087. }
  1088. textRows.push(fontBackObj);
  1089. if(styleObject.fontBackground === true){
  1090. textRows.push(fontBackColorObj);
  1091. }
  1092. textRows.push(fontShadowObj);
  1093. if (styleObject.fontShadow === true) {
  1094. textRows.push(fontShadowColorObj);
  1095. textRows.push(fontShadowOffsetXObj);
  1096. textRows.push(fontShadowOffsetYObj);
  1097. }
  1098. }
  1099. //图元文本
  1100. if(selectfeature.symbolType === SuperMap.Plot.SymbolType.TEXTSYMBOL){
  1101. rows = rows.concat(textRows);
  1102. }
  1103. if(selectfeature.symbolType === SuperMap.Plot.SymbolType.GROUPOBJECT||
  1104. selectfeature.symbolType === SuperMap.Plot.SymbolType.FLAGGROUP||
  1105. selectfeature.symbolType === SuperMap.Plot.SymbolType.AIRROUTE||
  1106. selectfeature.symbolType === SuperMap.Plot.SymbolType.NAVYROUTE||
  1107. selectfeature.symbolType === SuperMap.Plot.SymbolType.MISSILEROUTE||
  1108. selectfeature.symbolType === SuperMap.Plot.SymbolType.LITERATESIGN||
  1109. selectfeature.symbolType === SuperMap.Plot.SymbolType.AIRDEPLOYMENT||
  1110. selectfeature.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT1||
  1111. selectfeature.symbolType === SuperMap.Plot.SymbolType.SATELLITETIMEWINDOWS||
  1112. selectfeature.symbolType === SuperMap.Plot.SymbolType.NAVYDEPLOYMENT
  1113. ){
  1114. rows = rows.concat(lineRows);
  1115. if(selectfeature.symbolType === SuperMap.Plot.SymbolType.AIRDEPLOYMENT||
  1116. selectfeature.symbolType === SuperMap.Plot.SymbolType.NAVYDEPLOYMENT){
  1117. rows = rows.concat(fillRows);
  1118. }
  1119. if(selectfeature.symbolType === SuperMap.Plot.SymbolType.NAVYDEPLOYMENT||
  1120. selectfeature.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT1){
  1121. rows.push(textContentObj);
  1122. rows.push(fontColorObj);
  1123. rows.push(fontFamilyObj);
  1124. rows.push(fontSizeObj);
  1125. }
  1126. }
  1127. //点标号自己独有属性
  1128. if(selectfeature.symbolType === SuperMap.Plot.SymbolType.DOTSYMBOL){
  1129. //常用:点:旋转角度
  1130. var dotSymbolRotateObj = new Object();
  1131. dotSymbolRotateObj.group = group[3];
  1132. dotSymbolRotateObj.name = displayNameDot[0];
  1133. dotSymbolRotateObj.editor = "text";
  1134. dotSymbolRotateObj.value = selectfeature.getRotate();
  1135. //常用:点:随图缩放
  1136. var dotScaleByMap = new Object();
  1137. dotScaleByMap.group = group[3];
  1138. dotScaleByMap.name = displayNameDot[1];
  1139. dotScaleByMap.editor = { "type": 'checkbox', "options":{ "on":true, "off":false }};
  1140. dotScaleByMap.value = checkboxValueToString(selectfeature.getScaleByMap());
  1141. //常用:点:镜像
  1142. var dotSymbolNegativeImageObj = new Object();
  1143. dotSymbolNegativeImageObj.group = group[3];
  1144. dotSymbolNegativeImageObj.name = displayNameDot[2];
  1145. dotSymbolNegativeImageObj.editor = { "type": 'checkbox', "options":{ "on":true, "off":false }};
  1146. dotSymbolNegativeImageObj.value = checkboxValueToString(selectfeature.getNegativeImage());
  1147. //常用:点:标号级别
  1148. var dotSymbolRankObj = new Object();
  1149. dotSymbolRankObj.group = group[3];
  1150. dotSymbolRankObj.name = displayNameDot[3];
  1151. dotSymbolRankObj.editor = { "type": 'combobox', "options": { "valueField": 'value', "textField": 'text', "data": getSymbolRankRows(selectfeature) }};
  1152. dotSymbolRankObj.value = symbolRankToString(selectfeature.getSymbolRank());
  1153. //常用:点:位置点偏移
  1154. var dotPositionOffset = new Object();
  1155. dotPositionOffset.group = group[3];
  1156. dotPositionOffset.name = displayNameDot[4];
  1157. dotPositionOffset.editor = { "type": 'checkbox', "options":{ "on":true, "off":false }};
  1158. dotPositionOffset.value = checkboxValueToString(selectfeature.getPositionOffset());
  1159. //常用:点:偏移线类型
  1160. var dotPositionOffsetType = new Object();
  1161. dotPositionOffsetType.group = group[3];
  1162. dotPositionOffsetType.name = displayNameDot[5];
  1163. dotPositionOffsetType.editor = { "type": 'combobox', "options": { "valueField": 'value', "textField": 'text', "data": getPositionOffsetTypeRows() }};
  1164. dotPositionOffsetType.value = positionOffsetTypeToString(selectfeature.getPositionOffsetType());
  1165. //常用:点:宽高限定
  1166. var dotSymbolWidthHeightLimit = new Object();
  1167. dotSymbolWidthHeightLimit.group = group[3];
  1168. dotSymbolWidthHeightLimit.name = displayNameDot[6];
  1169. dotSymbolWidthHeightLimit.editor = { "type": 'checkbox', "options":{ "on":true, "off":false }};
  1170. dotSymbolWidthHeightLimit.value = checkboxValueToString(selectfeature.getWidthHeightLimit());
  1171. //常用:点:军标大小
  1172. var dotSymbolWidthObj = new Object();
  1173. dotSymbolWidthObj.group = group[3];
  1174. dotSymbolWidthObj.name = displayNameDot[7];
  1175. dotSymbolWidthObj.editor = "text";
  1176. dotSymbolWidthObj.value = selectfeature.getSymbolSize().w;
  1177. var dotSymbolHeightObj = new Object();
  1178. dotSymbolHeightObj.group = group[3];
  1179. dotSymbolHeightObj.name = displayNameDot[8];
  1180. dotSymbolHeightObj.editor = "text";
  1181. dotSymbolHeightObj.value = selectfeature.getSymbolSize().h;
  1182. var dotSymbolRows = [];
  1183. dotSymbolRows.push(dotSymbolRotateObj);
  1184. dotSymbolRows.push(dotScaleByMap);
  1185. dotSymbolRows.push(dotSymbolNegativeImageObj);
  1186. dotSymbolRows.push(dotSymbolRankObj);
  1187. dotSymbolRows.push(dotPositionOffset);
  1188. dotSymbolRows.push(dotPositionOffsetType);
  1189. dotSymbolRows.push(dotSymbolWidthHeightLimit);
  1190. dotSymbolRows.push(dotSymbolWidthObj);
  1191. dotSymbolRows.push(dotSymbolHeightObj);
  1192. dotSymbolRows = dotSymbolRows.concat(lineRows);
  1193. dotSymbolRows = dotSymbolRows.concat(surroundLineRows);
  1194. dotSymbolRows = dotSymbolRows.concat(fillRows);
  1195. dotSymbolRows = dotSymbolRows.concat(textRows);
  1196. rows = rows.concat(dotSymbolRows);
  1197. }
  1198. if(selectfeature.symbolType !== SuperMap.Plot.SymbolType.DOTSYMBOL && checkSymbolType(selectfeature) === true){
  1199. var algoSymbolRows =[];
  1200. //线面标号子标号
  1201. for (var i = 0; i < selectfeature.getSubSymbols().length; i++) {
  1202. var objectSubCode = new Object();
  1203. objectSubCode.group = group[8];
  1204. objectSubCode.name = displayName[3];
  1205. objectSubCode.editor = { "type": 'combobox', "options": { "valueField": 'value', "textField": 'text', "data": getSubSymbolsTypeRows(selectfeature) }};
  1206. objectSubCode.index = i;
  1207. objectSubCode.value = selectfeature.getSubSymbols()[i].code;
  1208. algoSymbolRows.push(objectSubCode);
  1209. }
  1210. if((0 === selectfeature.getSubSymbols().length && selectfeature.libID === 0 && selectfeature.code === 1025)||
  1211. (0 === selectfeature.getSubSymbols().length && selectfeature.libID === 100 && selectfeature.code === 25200)||
  1212. (0 === selectfeature.getSubSymbols().length && selectfeature.libID === 100 && selectfeature.code === 3020901)||
  1213. (0 === selectfeature.getSubSymbols().length && selectfeature.libID === 100 && selectfeature.code === 23400) ||
  1214. (0 === selectfeature.getSubSymbols().length && selectfeature.libID === 100 && selectfeature.code === 30800) ||
  1215. (0 === selectfeature.getSubSymbols().length && selectfeature.libID === 100 && selectfeature.code === 26400)
  1216. ){
  1217. var objectSubCode1 = new Object();
  1218. objectSubCode1.group = group[8];
  1219. objectSubCode1.name = displayName[3];
  1220. objectSubCode1.editor = { "type": 'combobox', "options": { "valueField": 'value', "textField": 'text', "data": getSubSymbolsTypeRows(selectfeature) }};
  1221. objectSubCode1.index = i;
  1222. objectSubCode1.value = subSymbolsTypeString(selectfeature.getSubSymbols().length,selectfeature);
  1223. algoSymbolRows.push(objectSubCode1);
  1224. }
  1225. if(selectfeature.code === 1025 && selectfeature.getSubSymbols().length > 0){
  1226. var objectLibID = new Object();
  1227. objectLibID.group = group[8];
  1228. objectLibID.name = displayName[2];
  1229. objectLibID.editor = "text";
  1230. objectLibID.value = libIDToString(selectfeature.getSubSymbols()[0].libID);
  1231. algoSymbolRows.push(objectLibID);
  1232. }
  1233. //四个点以上含4个点可以设置成折线显示
  1234. if (typeof selectfeature.isCanPolyLineConnectCode !== "undefined" && selectfeature.isCanPolyLineConnectCode()=== true ) {
  1235. var algoLineType = new Object();
  1236. algoLineType.group = groupNew[8];
  1237. algoLineType.name = displayNameNew[20];
  1238. algoLineType.editor = {"type": 'checkbox', "options": {"on": true, "off": false}};
  1239. algoLineType.value = checkboxValueToString(selectfeature.getPolylineConnectLocationPoint());
  1240. algoSymbolRows.push(algoLineType);
  1241. }
  1242. algoSymbolRows = algoSymbolRows.concat(lineRows);
  1243. algoSymbolRows = algoSymbolRows.concat(surroundLineRows);
  1244. algoSymbolRows = algoSymbolRows.concat(fillRows);
  1245. if(isCanAddText(selectfeature)===true){
  1246. algoSymbolRows = algoSymbolRows.concat(textRows);
  1247. }
  1248. rows = rows.concat(algoSymbolRows);
  1249. }
  1250. //注记指示框、多角标注框、标注框、线型标注框
  1251. if (selectfeature.symbolType === SuperMap.Plot.SymbolType.ANNOFRAMESYMBOL||
  1252. selectfeature.symbolType === SuperMap.Plot.SymbolType.ANNOFRAMESYMBOLM||
  1253. selectfeature.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXTBOX||
  1254. selectfeature.symbolType === SuperMap.Plot.SymbolType.LINEMARKING){
  1255. //文字对齐方式
  1256. var fontAlignType = new Object();
  1257. fontAlignType.group = group[7];
  1258. fontAlignType.name = displayNameNew[21];
  1259. fontAlignType.editor = { "type": 'combobox', "options": { "valueField": 'value', "textField": 'text', "data": getFontAlignTypeRows() }};
  1260. fontAlignType.value = fontAlignTypeToString(styleObject.labelAlign);
  1261. rows.push(fontAlignType);
  1262. //标注框边框
  1263. if(selectfeature.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXTBOX){
  1264. //标注框边框
  1265. var textBoxTypeObj = new Object();
  1266. textBoxTypeObj.group = groupNew[3];
  1267. textBoxTypeObj.name = displayNameNew[9];
  1268. textBoxTypeObj.editor = { "type": 'combobox', "options": { "valueField": 'value', "textField": 'text', "data": getTextBoxTypeRows() }};
  1269. textBoxTypeObj.value = textBoxTypeToString(selectfeature.getTextBoxType());
  1270. //圆角边框
  1271. var roundBoxObj = new Object();
  1272. roundBoxObj.group = groupNew[3];
  1273. roundBoxObj.name = displayNameNew[10];
  1274. roundBoxObj.editor = { "type": 'checkbox', "options":{ "on":true, "off":false }};
  1275. roundBoxObj.value = checkboxValueToString(selectfeature.getRoundBox());
  1276. rows.push(textBoxTypeObj);
  1277. rows.push(roundBoxObj);
  1278. }
  1279. //线型标注框边框
  1280. if(selectfeature.symbolType === SuperMap.Plot.SymbolType.LINEMARKING){
  1281. var lineMarkingTextBoxTypeObj = new Object();
  1282. lineMarkingTextBoxTypeObj.group = groupNew[3];
  1283. lineMarkingTextBoxTypeObj.name = displayNameNew[9];
  1284. lineMarkingTextBoxTypeObj.editor = { "type": 'combobox', "options": { "valueField": 'value', "textField": 'text', "data": getLineMarkingTypeRows() }};
  1285. lineMarkingTextBoxTypeObj.value = lineMarkingTypeToString(selectfeature.getTextBoxType());
  1286. rows.push(lineMarkingTextBoxTypeObj);
  1287. }
  1288. }
  1289. //箭头线自己独有属性
  1290. if (selectfeature.symbolType === SuperMap.Plot.SymbolType.ARROWLINE && selectfeature.libID === 0) {
  1291. var arrowTypeStartObj = new Object();
  1292. arrowTypeStartObj.group = groupNew[1];
  1293. arrowTypeStartObj.name = displayNameNew[3];
  1294. arrowTypeStartObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getArrowTypeRows(selectfeature)}};
  1295. arrowTypeStartObj.value = arrowTypeToString(selectfeature.getStartArrowType());
  1296. var arrowTypeEndObj = new Object();
  1297. arrowTypeEndObj.group = groupNew[1];
  1298. arrowTypeEndObj.name = displayNameNew[4];
  1299. arrowTypeEndObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getArrowTypeRows(selectfeature)}};
  1300. arrowTypeEndObj.value = arrowTypeToString(selectfeature.getEndArrowType());
  1301. rows.push(arrowTypeStartObj);
  1302. rows.push(arrowTypeEndObj);
  1303. }
  1304. //沿线注记自己独有属性
  1305. if (selectfeature.symbolType === SuperMap.Plot.SymbolType.PATHTEXT) {
  1306. var showPathLineObj = new Object();
  1307. showPathLineObj.group = groupNew[2];
  1308. showPathLineObj.name = displayNameNew[5];
  1309. showPathLineObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getShowRows()}};
  1310. showPathLineObj.value = showToString(selectfeature.getShowPathLine());
  1311. var isCurveObj = new Object();
  1312. isCurveObj.group = groupNew[2];
  1313. isCurveObj.name = displayNameNew[6];
  1314. isCurveObj.editor = {"type": 'checkbox', "options": {"on": true, "off": false}};
  1315. isCurveObj.value = checkboxValueToString(selectfeature.getIsCurveLine());
  1316. var showPathLineArrowObj = new Object();
  1317. showPathLineArrowObj.group = groupNew[2];
  1318. showPathLineArrowObj.name = displayNameNew[7];
  1319. showPathLineArrowObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getShowRows()}};
  1320. showPathLineArrowObj.value = showToString(selectfeature.getShowPathLineArrow());
  1321. var isAvoidObj = new Object();
  1322. isAvoidObj.group = groupNew[2];
  1323. isAvoidObj.name = displayNameNew[8];
  1324. isAvoidObj.editor = {"type": 'checkbox', "options": {"on": true, "off": false}};
  1325. isAvoidObj.value = checkboxValueToString(selectfeature.getIsAvoidLine());
  1326. rows.push(showPathLineObj);
  1327. rows.push(isCurveObj);
  1328. rows.push(showPathLineArrowObj);
  1329. if(selectfeature.getRelLineText() === SuperMap.Plot.RelLineText.ONLINE){
  1330. rows.push(isAvoidObj);
  1331. }
  1332. }
  1333. //对象间连线
  1334. if (selectfeature.symbolType === SuperMap.Plot.SymbolType.LINERELATION) {
  1335. var lineRelationTypeObj = new Object();
  1336. lineRelationTypeObj.name = displayNameNew[19];
  1337. lineRelationTypeObj.value = lineRelationTypeToString(selectfeature.getLineRelationType());
  1338. lineRelationTypeObj.group = groupNew[7];
  1339. lineRelationTypeObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getLineRelationTypeRows()}};
  1340. rows.push(lineRelationTypeObj);
  1341. }
  1342. //扇形区域
  1343. if (selectfeature.symbolType === SuperMap.Plot.SymbolType.ARCREGION) {
  1344. if (selectfeature.radiusLineType != null){
  1345. var radiusLineTypeObj = new Object();
  1346. radiusLineTypeObj.name = displayNameNew[12];
  1347. radiusLineTypeObj.value = radiusTypeToString(selectfeature.getRadiusLineType());
  1348. radiusLineTypeObj.group = groupNew[4];
  1349. radiusLineTypeObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getRadiusTypeRows(selectfeature)}};
  1350. rows.push(radiusLineTypeObj);
  1351. }
  1352. if (selectfeature.radiusText != null) {
  1353. var radiusPosAngleObj = new Object();
  1354. radiusPosAngleObj.name = displayNameNew[13];
  1355. radiusPosAngleObj.value = selectfeature.getRadiusTextPos();
  1356. radiusPosAngleObj.group = groupNew[4];
  1357. radiusPosAngleObj.editor = "text";
  1358. var upTextObj = new Object();
  1359. upTextObj.name = displayNameNew[14];
  1360. upTextObj.value = selectfeature.getRadiusText(0);
  1361. upTextObj.group = groupNew[4];
  1362. upTextObj.editor = "text";
  1363. var downTextObj = new Object();
  1364. downTextObj.name = displayNameNew[15];
  1365. downTextObj.value = selectfeature.getRadiusText(1);
  1366. downTextObj.group = groupNew[4];
  1367. downTextObj.editor = "text";
  1368. rows.push(radiusPosAngleObj);
  1369. rows.push(upTextObj);
  1370. rows.push(downTextObj);
  1371. }
  1372. }
  1373. //航线
  1374. if (selectfeature.symbolType === SuperMap.Plot.SymbolType.ROUTENODE) {
  1375. rows = rows.concat(lineRows);
  1376. var routeNodeTypeObj = new Object();
  1377. routeNodeTypeObj.name = displayNameNew[17];
  1378. routeNodeTypeObj.value = routeNodeTypeToString(selectfeature.routeNode.type);
  1379. routeNodeTypeObj.group = groupNew[6];
  1380. routeNodeTypeObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getRouteNodeTypeRows()}};
  1381. var routeNodeRotate = new Object();
  1382. routeNodeRotate.name = displayNameNew[18];
  1383. routeNodeRotate.value = selectfeature.routeNode.rotate;
  1384. routeNodeRotate.group = groupNew[6];
  1385. routeNodeRotate.editor = "text";
  1386. rows.push(routeNodeTypeObj);
  1387. if (selectfeature.routeNode.type === SuperMap.Plot.RouteNodeType.STANDBY) {
  1388. rows.push(routeNodeRotate);
  1389. }
  1390. }
  1391. //对象标注的标注内容和标注边框
  1392. if (selectfeature.symbolType === SuperMap.Plot.SymbolType.SYMBOLTEXT) {
  1393. var textContentObj1 = new Object();
  1394. textContentObj1.group = group[7];
  1395. textContentObj1.name = displayTextContentName[0];
  1396. textContentObj1.editor = "text";
  1397. textContentObj1.value = selectfeature.symbolTexts[0].textContent;
  1398. rows.push(textContentObj1);
  1399. if(selectfeature.symbolTexts.length == 2){
  1400. var textContentObj2 = new Object();
  1401. textContentObj2.group = group[7];
  1402. textContentObj2.name = displayTextContentName[0] + "2";
  1403. textContentObj2.editor = "text";
  1404. textContentObj2.value = selectfeature.symbolTexts[1].textContent;
  1405. rows.push(textContentObj2);
  1406. }
  1407. rows.push(fontColorObj);
  1408. rows.push(fontFamilyObj);
  1409. rows.push(fontSizeObj);
  1410. var symbolTextFrameObj = new Object();
  1411. symbolTextFrameObj.group = groupNew[3];
  1412. symbolTextFrameObj.name = displayNameNew[11];
  1413. symbolTextFrameObj.editor = { "type": 'checkbox', "options":{ "on":true, "off":false }};
  1414. symbolTextFrameObj.value = checkboxValueToString(selectfeature.getFrame());
  1415. rows.push(symbolTextFrameObj);
  1416. if(selectfeature.getFrame() === true){
  1417. rows.push(lineWidthObj);
  1418. rows.push(lineColorObj);
  1419. rows.push(lineOpaqueRateObj);
  1420. rows.push(fillObj);
  1421. rows.push(fillforeColorObj);
  1422. rows.push(fillOpaqueRateObj);
  1423. }
  1424. }
  1425. //卫星
  1426. if (selectfeature.symbolType === SuperMap.Plot.SymbolType.SATELLITE) {
  1427. var visibleObj = new Object();
  1428. visibleObj.name = displayNameNew[16];
  1429. visibleObj.value = showToString(selectfeature.getVisible());
  1430. visibleObj.group = groupNew[5];
  1431. visibleObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getShowRows()}};
  1432. rows = rows.concat(lineRows);
  1433. rows.push(textContentObj);
  1434. rows.push(fontColorObj);
  1435. rows.push(fontFamilyObj);
  1436. rows.push(fontSizeObj);
  1437. rows.push(visibleObj);
  1438. }
  1439. //复合箭头自己独有属性
  1440. if (selectfeature.libID === 22 && selectfeature.code === 1016) {
  1441. var arrowHeadTypeObj = new Object();
  1442. arrowHeadTypeObj.group = groupNew[0];
  1443. arrowHeadTypeObj.name = displayNameNew[0];
  1444. arrowHeadTypeObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getArrowHeadTypeRows()}};
  1445. arrowHeadTypeObj.value = arrowHeadTypeToString(selectfeature.getArrowHeadType());
  1446. var arrowBodyTypeObj = new Object();
  1447. arrowBodyTypeObj.group = groupNew[0];
  1448. arrowBodyTypeObj.name = displayNameNew[1];
  1449. arrowBodyTypeObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getArrowBodyTypeRows()}};
  1450. arrowBodyTypeObj.value = arrowBodyTypeToString(selectfeature.getArrowBodyType());
  1451. var arrowTailTypepeObj = new Object();
  1452. arrowTailTypepeObj.group = groupNew[0];
  1453. arrowTailTypepeObj.name = displayNameNew[2];
  1454. arrowTailTypepeObj.editor = {"type": 'combobox', "options": {"valueField": 'value', "textField": 'text', "data": getArrowTailTypeRows()}};
  1455. arrowTailTypepeObj.value = arrowTailTypeToString(selectfeature.getArrowTailType());
  1456. rows.push(arrowHeadTypeObj);
  1457. rows.push(arrowBodyTypeObj);
  1458. rows.push(arrowTailTypepeObj);
  1459. }
  1460. return rows;
  1461. }