1. const POINT_STYLE = {
    2. Angle: 0,
    3. Color: 11,
    4. Space: 0,
    5. SymHeight: 6,
    6. SymID: 31,
    7. SymWidth: 6
    8. }
    9. class Point {
    10. static add({
    11. position,
    12. attr,
    13. service,
    14. layer
    15. }) {
    16. /* 1、几何信息 */
    17. //创建一个点形状,描述点形状的几何信息
    18. var gpoint = new Zondy.Object.GPoint(position[0], position[1]); //createPoint();
    19. //设置当前点要素的几何信息
    20. var fGeom = new Zondy.Object.FeatureGeometry({
    21. PntGeom: [gpoint]
    22. });
    23. /* 2、图形参数 */
    24. //描述点要素的符号参数信息
    25. var pointInfo = new Zondy.Object.CPointInfo(POINT_STYLE);
    26. //设置当前点要素的图形参数信息
    27. var webGraphicInfo = new Zondy.Object.WebGraphicsInfo({
    28. InfoType: 1,
    29. PntInfo: pointInfo
    30. });
    31. /* 3、属性 */
    32. //设置添加点要素的属性信息
    33. var attValue = attr.map(item => item.value);
    34. /* 4、几何+图形+属性 构建要素*/
    35. //创建一个要素
    36. var feature = new Zondy.Object.Feature({
    37. fGeom: fGeom,
    38. GraphicInfo: webGraphicInfo,
    39. AttValue: attValue
    40. });
    41. //设置要素为点要素
    42. feature.setFType(1);
    43. //创建一个要素数据集
    44. /* 5、创建要素集添加要素 */
    45. var featureSet = new Zondy.Object.FeatureSet();
    46. //设置属性结构
    47. var cAttStruct = new Zondy.Object.CAttStruct({
    48. FldName: attr.map(item => item.key),
    49. FldNumber: attr.length,
    50. FldType: attr.map(item => item.type)
    51. });
    52. featureSet.AttStruct = cAttStruct;
    53. //添加要素到要素数据集
    54. featureSet.addFeature(feature);
    55. /* 6、调用中地服务,添加要素 */
    56. //创建一个编辑服务类
    57. var editService = new Zondy.Service.EditDocFeature(service.name, service.layerId, {
    58. ip: "localhost",
    59. port: "6163" //访问IGServer的端口号,.net版为6163,Java版为8089
    60. });
    61. //执行添加点要素功能
    62. editService.add(featureSet, this.onPntSuccess(layer));
    63. }
    64. static onPntSuccess(layer) {
    65. return function (data) {
    66. if (data.succeed) {
    67. alert("操作点要素成功!");
    68. layer.refresh();
    69. } else {
    70. alert("操作点要素失败!");
    71. }
    72. }
    73. }
    74. static query({
    75. position,
    76. service,
    77. callback
    78. }) {
    79. /* 1、创建一个用于查询的点 */
    80. //创建一个用于查询的点形状
    81. let pointObj = new Zondy.Object.Point2D(position[0], position[1]);
    82. //设置查询点的搜索半径
    83. pointObj.nearDis = 1;
    84. //2、初始化查询结构对象,设置查询结构包含几何信息
    85. var queryStruct = new Zondy.Service.QueryFeatureStruct();
    86. //是否包含几何图形信息
    87. queryStruct.IncludeGeometry = true;
    88. //是否包含属性信息
    89. queryStruct.IncludeAttribute = true;
    90. //是否包含图形显示参数
    91. queryStruct.IncludeWebGraphic = true;
    92. //3、指定查询规则
    93. var rule = new Zondy.Service.QueryFeatureRule({
    94. //是否将要素的可见性计算在内
    95. EnableDisplayCondition: false,
    96. //是否完全包含
    97. MustInside: false,
    98. //是否仅比较要素的外包矩形
    99. CompareRectOnly: false,
    100. //是否相交
    101. Intersect: true
    102. });
    103. //4、实例化查询参数对象
    104. var queryParam = new Zondy.Service.QueryParameter({
    105. geometry: pointObj,
    106. resultFormat: "json",
    107. struct: queryStruct,
    108. rule: rule
    109. });
    110. /* 5、查询服务 */
    111. //实例化地图文档查询服务对象
    112. var queryService = new Zondy.Service.QueryDocFeature(queryParam, service.name, service.layerId, {
    113. ip: "localhost",
    114. port: "6163" //访问IGServer的端口号,.net版为6163,Java版为8089
    115. });
    116. //执行查询操作,querySuccess为查询回调函数
    117. queryService.query(callback);
    118. }
    119. static update({
    120. fid,
    121. position,
    122. attr,
    123. service,
    124. layer
    125. }) {
    126. /* 1、确定修改的几何位置 */
    127. var gpoint = new Zondy.Object.GPoint(position[0],position[1]) // 修改位置
    128. /* 设置当前点要素的几何信息 */
    129. var fGeom = new Zondy.Object.FeatureGeometry({
    130. PntGeom: [gpoint]
    131. })
    132. /* 2、样式信息 */
    133. /* 2.2 设置样式信息 */
    134. var pointInfo = new Zondy.Object.CPointInfo(POINT_STYLE)
    135. /* 设置当点要素的图形参数信息 */
    136. var webGraphicInfo = new Zondy.Object.WebGraphicsInfo({
    137. InfoType: 1, //点
    138. PntInfo: pointInfo
    139. })
    140. /* 3、属性 */
    141. var attValue = attr.map(item=>item.value)
    142. /* 4、设置要素 */
    143. var feature = new Zondy.Object.Feature({
    144. fGeom: fGeom, //坐标--几何信息
    145. GraphicInfo: webGraphicInfo, //样式信息
    146. AttValue: attValue //属性
    147. })
    148. /* 设置要素为点要素
    149. 点 -->1
    150. 线 -->2
    151. 面 -->3
    152. */
    153. feature.setFType(1)
    154. feature.setFID(fid) //++
    155. /* 5、设置要素集,添加要素 */
    156. //创建一个要素数据集
    157. var featureSet = new Zondy.Object.FeatureSet()
    158. /* 设置属性结构 */
    159. var cAttStruct = new Zondy.Object.CAttStruct({
    160. FldName: attr.map(item=>item.key),
    161. FldNumber: attr.length, //属性的个数
    162. FldType: attr.map(item=>item.type)
    163. })
    164. featureSet.AttStruct = cAttStruct
    165. /* 添加要素到要素数据集 */
    166. featureSet.addFeature(feature)
    167. /* 6、调用服务,执行更新 */
    168. /*
    169. 创建一个编辑服务类
    170. 第一个参数:服务的名称 第二参数:图层的名称
    171. */
    172. var editService = new Zondy.Service.EditDocFeature(service.name, service.layerId, {
    173. ip: 'localhost',
    174. port: '6163' //访问IGServer的端口号, .net为6163,Java为8089
    175. })
    176. //执行添加点要素功能
    177. editService.update(featureSet, this.onPntSuccess(layer))
    178. }
    179. }