ArcGis点线面demo

http://192.168.1.49:6080/arcgis/rest/services/雁塔区/MapServer 这是王侃的雁塔区图层访问连接

  1. <link rel="stylesheet" href="https://js.arcgis.com/4.11/esri/themes/light/main.css" />
  2. <script src="./arcgis.js"></script>
  3. <style>
  4. html, body, #viewDiv {
  5. padding: 0;
  6. margin: 0;
  7. height: 100%;
  8. width: 100%;
  9. }
  10. </style>
  11. <script>
  12. require([
  13. "esri/Map",
  14. "esri/views/MapView",
  15. "esri/layers/TileLayer",
  16. "esri/Basemap",
  17. "esri/layers/FeatureLayer",
  18. "esri/Graphic"
  19. ], function( Map, MapView, TileLayer, Basemap, FeatureLayer, Graphic ) {
  20. // var layer = new FeatureLayer({
  21. // url: "http://192.168.1.49:6080/arcgis/rest/services/雁塔区/MapServer",
  22. // });
  23. var customBasemap = new Basemap({
  24. baseLayers:[
  25. new TileLayer({ // 可配置属性,见TileLayer类
  26. id: 'TL',
  27. url: "http://192.168.1.49:6080/arcgis/rest/services/雁塔区/MapServer"
  28. })
  29. ],
  30. });
  31. var map = new Map({
  32. basemap: customBasemap,
  33. });
  34. var view = new MapView({
  35. center: [108.873, 34.195],
  36. container: "viewDiv",
  37. map: map,
  38. zoom: 16
  39. });
  40. /*************************
  41. * 创建点图。
  42. *************************/
  43. var point = {
  44. type: "point", // autocasts as new Point()
  45. longitude: 108.873,
  46. latitude: 34.195
  47. };
  48. // 创建绘制点的符号。
  49. var markerSymbol = {
  50. type: "simple-marker", // autocasts as new SimpleMarkerSymbol()
  51. color: [23, 137, 216], // 填充颜色。
  52. outline: {
  53. // autocasts as new SimpleLineSymbol()
  54. color: [255, 255, 255],
  55. width: 2
  56. }
  57. };
  58. var pointLineAtt = {
  59. '名称': "锦业时代B3",
  60. };
  61. // 创建图形并将几何图形和符号添加到图形中。
  62. var pointGraphic = new Graphic({
  63. geometry: point,
  64. symbol: markerSymbol,
  65. attributes: pointLineAtt,
  66. popupTemplate: {
  67. visible: true,
  68. // autocasts as new PopupTemplate()
  69. title: "{名称}"
  70. }
  71. });
  72. /****************************
  73. * 创建折线图形。
  74. ****************************/
  75. // 首先,创建一条折线几何图形。
  76. var polyline = {
  77. type: "polyline", // autocasts as new Polyline()
  78. paths: [[108.88592720, 34.19329405], [108.87545586, 34.19307947], [108.86471629, 34.19283271], [108.85186315, 34.19266105], [108.83697152, 34.19263959]]
  79. };
  80. // 创建用于绘制线的符号。
  81. var lineSymbol = {
  82. type: "simple-line",
  83. color: [23, 137, 216],
  84. width: 4
  85. };
  86. // 创建对象,用于存储与该polyline相关的属性。
  87. var lineAtt = {
  88. '名称': "锦业一路",
  89. '距离': "4,481 km"
  90. };
  91. /*******************************************
  92. * 创建一个新图形,并给它添加几何图形、符号、属性。
  93. * 你也可以给该图形添加一个简单的弹窗模板。
  94. * 当在该图形上单击时,这将允许用户查看该图形的属性。
  95. ******************************************/
  96. var polylineGraphic = new Graphic({
  97. geometry: polyline,
  98. symbol: lineSymbol,
  99. attributes: lineAtt,
  100. popupTemplate: {
  101. // autocasts as new PopupTemplate()
  102. title: "{名称}",
  103. content: [
  104. {
  105. type: "fields",
  106. fieldInfos: [
  107. {
  108. fieldName: "名称"
  109. },
  110. {
  111. fieldName: "距离"
  112. }
  113. ]
  114. }
  115. ]
  116. }
  117. });
  118. /***************************
  119. * 创建一个面图形。
  120. ***************************/
  121. var polygon = {
  122. type: "polygon", // autocasts as new Polygon()
  123. rings: [
  124. [108.87102485, 34.19532180],
  125. [108.87107849, 34.19299364],
  126. [108.87544513, 34.19309020],
  127. [108.87544513, 34.19538617]
  128. ]
  129. };
  130. var fillSymbol = {
  131. type: "simple-fill", // autocasts as new SimpleFillSymbol()
  132. color: [227, 139, 79, 0.8], // 填充颜色。
  133. outline: {
  134. // autocasts as new SimpleLineSymbol()
  135. color: [255, 255, 255],
  136. width: 1
  137. }
  138. };
  139. var polygonGraphic = new Graphic({
  140. geometry: polygon,
  141. symbol: fillSymbol,
  142. popupTemplate: {
  143. // autocasts as new PopupTemplate()
  144. title: "锦业时代区域",
  145. }
  146. });
  147. // 把所有的图形,添加到视图的图形层。
  148. view.graphics.addMany([
  149. polygonGraphic,
  150. polylineGraphic,
  151. pointGraphic,
  152. ]);
  153. });
  154. </script>

站点架构

学习记录 - 图1

Arcgis api for js 知识点

建议查看详细描述:
https://www.cnblogs.com/onsummer/p/9080204.html

  • arcgis api包含内容

学习记录 - 图2

  • 左侧为二维,右侧为三维;

学习记录 - 图3
分别用两个对象来描述“数据”和“视图”;
在arcgis中,用【Map类】构造地理数据、用【View类】构造视图。
通过以下桥梁可以连接它们
学习记录 - 图4

Map有WebMap和WebScene两个子类,由于继承和多态的特征,视图中map属性也可以设为WebMap和WebScene。
学习记录 - 图5

Map常用的有三个属性,底图、可操作图层集合、地形图层。

  1. basemap属性可使用预置的底图,也可以使用自定义的Basemap对象;
  2. [★]layers属性是可操作的Layer对象的集合,Layer类有很多子类,如几何图层、地图图层、要素图层等,这些都是由数据组成!
  3. ground属性表示地图高程,可以用预置的世界高程数据,也可以自定义高程图层。

学习记录 - 图6