一、MapGIS创建线要素

  1. 设置namelength两个字段

image.png

二、绘制从北京到广州的线 (铁路)

  1. 北京 (116.30 , 39.90)
  2. 广州 (112.57 , 22.26)

image.png
之后点击开始的保存,然后在IG Server中重载一下
image.png

image.png

三、点击事件实现从武汉到成都的铁路

  1. 武汉 [114,30]
  2. 成都 [104.07,30.67]
  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. <!-- 1、加载ol -->
  9. <script src="../lib/include-openlayers-local.js"></script>
  10. <script src="../js/Gaode.js"></script>
  11. </head>
  12. <body>
  13. <!-- 2、创建地图容器 -->
  14. <button onclick="addLine()">添加</button>
  15. <div id="map_container">
  16. </div>
  17. <!-- 3、实例化对象 -->
  18. <script>
  19. const docLayer = new Zondy.Map.Doc('', 'd_city', {
  20. ip: 'localhost',
  21. port: 6163
  22. })
  23. const map = new ol.Map({
  24. target: 'map_container',
  25. layers: [gaode, docLayer],
  26. view: new ol.View({
  27. projection: 'EPSG:4326',
  28. center: [114, 30],
  29. zoom: 4
  30. })
  31. })
  32. /* 添加一个线到数据库 */
  33. function addLine(){
  34. /* 2.1 构建几何信息 */
  35. var pointObj = []
  36. pointObj[0] = new Zondy.Object.Point2D(114,30);
  37. pointObj[1] = new Zondy.Object.Point2D(104.07,30.67);
  38. /* 构成折线的弧度 */
  39. var gArc = new Zondy.Object.Arc(pointObj);
  40. /* 构成线的折线 */
  41. var gAnyLine = new Zondy.Object.AnyLine([gArc])
  42. /* 设置线要素的几何信息 */
  43. var gLine = new Zondy.Object.GLine(gAnyLine)
  44. /* 设置要素的几何信息 */
  45. var fGeom = new Zondy.Object.FeatureGeometry({LinGeom:[gLine]})
  46. /* 2.2 设置而样式信息 */
  47. //设置添加线要素的图形参数信息
  48. var clineInfo = new Zondy.Object.CLineInfo({
  49. Color:1, //子图的颜色号
  50. LinStyleID:0,
  51. LinStyleID2:19,
  52. LinWidth:0.1, //线宽
  53. Xscale:10,
  54. Yscale:10
  55. })
  56. //设置要素的图形参数
  57. var graphicInfo = new Zondy.Object.WebGraphicsInfo({
  58. InfoType:2, //线
  59. LinInfo:clineInfo
  60. })
  61. /* 2.3 设置属性信息 */
  62. var attValue = ['武广线',1289]
  63. /* 2.4 构建要素类*/
  64. //创建一个线要素
  65. var newFeature = new Zondy.Object.Feature({
  66. fGeom:fGeom,
  67. GraphicInfo:graphicInfo,
  68. AttValue:attValue
  69. })
  70. //设置要为线要素
  71. newFeature.setFType(2)
  72. /* 2.5 设置要素集 */
  73. //创建一个要素数据集
  74. var featureSet = new Zondy.Object.FeatureSet();
  75. //创建属性结构设置对象
  76. var cAttStruct = new Zondy.Object.CAttStruct({
  77. FldName:['name','length'],
  78. FldNumber:2,
  79. FldType:['string','double ']
  80. })
  81. //设置要素数据集的属性结构
  82. featureSet.AttStruct = cAttStruct;
  83. //将添加的线要素添加到属性数据集中
  84. featureSet.addFeature(newFeature);
  85. /* 2.6 调用地图编辑服务接口 */
  86. //创建一个地图编辑对象
  87. var editDocFeature = new Zondy.Service.EditDocFeature('d_city',0,{
  88. ip:'localhost',
  89. port:'6163'
  90. })
  91. editDocFeature.add(featureSet,onLineSuccess)
  92. }
  93. function onLineSuccess(data) {
  94. if (data.succeed) {
  95. alert('添加成功')
  96. docLayer.refresh(); //重新加载地图文档
  97. } else {
  98. alert('添加点要素失败')
  99. }
  100. }
  101. </script>
  102. </body>
  103. </html>