通过地图事件,调用中地的服务添加点要素

    1. 1、通过事件获取地图坐标
    2. 2、根据坐标,向地图文档(mapgis数据库)添加点要素
    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Document</title>
    8. <script src="../../lib/include-openlayers-local.js"></script>
    9. <script src="../../js/Gaode.js"></script>
    10. </head>
    11. <body>
    12. <div id="map_container">
    13. </div>
    14. <script>
    15. const docLayer = new Zondy.Map.Doc('', 'smart_city01', {
    16. ip: 'localhost',
    17. port: 6163
    18. })
    19. const map = new ol.Map({
    20. target: 'map_container',
    21. layers: [Gaode, docLayer],
    22. view: new ol.View({
    23. projection: 'EPSG:4326',
    24. center: [114, 30],
    25. zoom: 4
    26. })
    27. })
    28. map.on('click',function(e){
    29. var coordinate = e.coordinate;
    30. addPoint(coordinate)
    31. })
    32. /* 添加一个点到数据库 */
    33. function addPoint(position) {
    34. /* 2.1构建几何信息 */
    35. /* 创建一个点形状,描述点形状的几何信息 */
    36. var gpoint = new Zondy.Object.GPoint(position[0],position[1])
    37. /* 设置当前点要素的几何信息 */
    38. var fGeom = new Zondy.Object.FeatureGeometry({
    39. PntGeom: [gpoint]
    40. })
    41. /* 2.2 设置样式信息 */
    42. var pointInfo = new Zondy.Object.CPointInfo({
    43. Angle: 0,
    44. Color: 2, //子图的颜色
    45. Space: 0,
    46. SymHeight: 5, //点的高度
    47. SymID: 31,
    48. SymWidth: 5 //点的宽度
    49. })
    50. /* 设置当点要素的图形参数信息 */
    51. var webGraphicInfo = new Zondy.Object.WebGraphicsInfo({
    52. InfoType: 1, //点
    53. PntInfo: pointInfo
    54. })
    55. /* 2.3 设置属性信息 */
    56. /* 设置添加点要素的属性信息 */
    57. var attValue = ['上海']
    58. /* 2.4 构建要素对象 */
    59. var feature = new Zondy.Object.Feature({
    60. fGeom: fGeom, //坐标--几何信息
    61. GraphicInfo: webGraphicInfo, //样式信息
    62. AttValue: attValue //属性
    63. })
    64. /* 设置要素为点要素
    65. -->1
    66. 线 -->2
    67. -->3
    68. */
    69. feature.setFType(1)
    70. /* 2.5 设置要素集 */
    71. //创建一个要素数据集
    72. var featureSet = new Zondy.Object.FeatureSet()
    73. /* 设置属性结构 */
    74. var cAttStruct = new Zondy.Object.CAttStruct({
    75. FldName: ['name'], //属性的字段名
    76. FldNumber: 1, //属性的个数
    77. FldType: ['string'] //属性的类型
    78. })
    79. featureSet.AttStruct = cAttStruct
    80. /* 添加要素到要素数据集 */
    81. featureSet.addFeature(feature)
    82. /* 2.6 调用编辑服务接口 */
    83. /*
    84. 创建一个编辑服务类
    85. 第一个参数:服务的名称 第二参数:图层的名称
    86. */
    87. var editService = new Zondy.Service.EditDocFeature('smart_city01', 0, {
    88. ip: 'localhost',
    89. port: '6163' //访问IGServer的端口号, .net6163,Java8089
    90. })
    91. //执行添加点要素功能
    92. editService.add(featureSet, onPntSuccess)
    93. }
    94. function onPntSuccess(data) {
    95. if (data.succeed) {
    96. alert('添加成功')
    97. docLayer.refresh(); //重新加载地图文档
    98. } else {
    99. alert('添加点要素失败')
    100. }
    101. }
    102. </script>
    103. </body>
    104. </html>