wall.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712
  1. import * as mars3d from "mars3d"
  2. export let map // mars3d.Map三维地图对象
  3. export let graphicLayer // 矢量图层对象
  4. export const eventTarget = new mars3d.BaseClass() // 事件对象,用于抛出事件到面板中
  5. // 需要覆盖config.json中地图属性参数(当前示例框架中自动处理合并)
  6. export const mapOptions = {
  7. scene: {
  8. center: { lat: 30.402686, lng: 116.303632, alt: 48692, heading: 3, pitch: -43 }
  9. }
  10. }
  11. // 初始化地图业务,生命周期钩子函数(必须),框架在地图初始化完成后自动调用该函数
  12. export function onMounted(mapInstance) {
  13. map = mapInstance // 记录首次创建的map
  14. // map.on(mars3d.EventType.removeLayer, function (event) {
  15. // console.log("移除了图层", event)
  16. // })
  17. showDraw()
  18. }
  19. // 释放当前地图业务的生命周期函数,具体项目中时必须写onMounted的反向操作(如解绑事件、对象销毁、变量置空)
  20. export function onUnmounted() {
  21. map = null
  22. }
  23. function removeLayer() {
  24. if (graphicLayer) {
  25. graphicLayer.clear()
  26. map.removeLayer(graphicLayer, true)
  27. graphicLayer = null
  28. }
  29. if (tilesetLayer) {
  30. map.removeLayer(tilesetLayer, true)
  31. tilesetLayer = null
  32. }
  33. }
  34. /**
  35. * 平台通过draw标绘后保存的geojosn数据(已经内置style了,无需配置symbol)
  36. */
  37. export function showDraw(isFlyTo) {
  38. removeLayer()
  39. graphicLayer = new mars3d.layer.GeoJsonLayer({
  40. name: "标绘示例数据",
  41. url: "https://data.mars3d.cn/file/geojson/mars3d-draw.json",
  42. popup: "{type} {name}",
  43. queryParameters: {
  44. token: "mars3d" // 可以传自定义url参数,如token等
  45. },
  46. symbol: {
  47. merge: true,
  48. styleOptions: {
  49. // 高亮时的样式
  50. highlight: {
  51. type: "click",
  52. opacity: 0.9
  53. }
  54. }
  55. },
  56. flyTo: isFlyTo
  57. })
  58. map.addLayer(graphicLayer)
  59. // load事件,必须在load完成前绑定才能监听
  60. graphicLayer.on(mars3d.EventType.load, function (event) {
  61. console.log("数据加载完成", event)
  62. eventTarget.fire("refTree")
  63. })
  64. setTimeout(() => {
  65. // readyPromise是可以load加载数据完成后去获取
  66. graphicLayer.readyPromise.then(function (layer) {
  67. console.log("readyPromise:数据加载完成", layer)
  68. })
  69. }, 5000)
  70. // 单击事件
  71. graphicLayer.on(mars3d.EventType.click, function (event) {
  72. console.log("单击了图层", event)
  73. })
  74. }
  75. /**
  76. * 点数据
  77. */
  78. export function showPoint() {
  79. removeLayer()
  80. window._test_button_click = function (attr) {
  81. globalAlert(JSON.stringify(attr), "测试查看详情")
  82. }
  83. graphicLayer = new mars3d.layer.GeoJsonLayer({
  84. name: "体育设施点",
  85. url: "https://data.mars3d.cn/file/geojson/hfty-point.json",
  86. symbol: {
  87. styleOptions: {
  88. image: "https://data.mars3d.cn/img/marker/mark-red.png",
  89. verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
  90. scale: 1,
  91. scaleByDistance: true,
  92. scaleByDistance_far: 20000,
  93. scaleByDistance_farValue: 0.5,
  94. scaleByDistance_near: 1000,
  95. scaleByDistance_nearValue: 1,
  96. // setHeight: 5000, //指定高度
  97. label: {
  98. text: "{项目名称}",
  99. font_size: 25,
  100. color: "#ffffff",
  101. outline: true,
  102. outlineColor: "#000000",
  103. pixelOffsetY: -25,
  104. scaleByDistance: true,
  105. scaleByDistance_far: 80000,
  106. scaleByDistance_farValue: 0.5,
  107. scaleByDistance_near: 1000,
  108. scaleByDistance_nearValue: 1,
  109. distanceDisplayCondition: true,
  110. distanceDisplayCondition_far: 80000,
  111. distanceDisplayCondition_near: 0
  112. }
  113. }
  114. },
  115. popup: [
  116. { field: "项目名称", name: "项目名称" },
  117. { field: "建设性质", name: "建设性质" },
  118. { field: "设施级别", name: "设施级别" },
  119. { field: "所属区县", name: "所属区县" },
  120. { field: "建筑内容及", name: "建筑内容" },
  121. { field: "新增用地(", name: "新增用地" },
  122. { field: "开工", name: "开工" },
  123. { field: "总投资(万", name: "总投资" },
  124. { field: "资金来源", name: "资金来源" },
  125. { field: "初步选址", name: "初步选址" },
  126. { field: "设施类型", name: "设施类型" },
  127. { field: "设施等级", name: "设施等级" },
  128. { field: "所在区县", name: "所在区县" },
  129. { field: "具体位置", name: "具体位置" },
  130. { field: "建设内容(", name: "建设内容" },
  131. { field: "用地面积(", name: "用地面积", format: "mars3d.MeasureUtil.formatArea" },
  132. { field: "设施规模(", name: "设施规模" },
  133. { field: "举办者类型", name: "举办者类型" },
  134. { field: "开工时间", name: "开工时间" },
  135. { field: "总投资额(", name: "总投资额", unit: "亿元" },
  136. { field: "项目推进主", name: "项目推进主体" },
  137. { field: "项目进度", name: "项目进度" },
  138. { field: "项目来源", name: "项目来源" },
  139. { field: "备注", name: "备注" },
  140. { name: "详情", type: "button", className: "mars3d-popup-btn-custom", callback: "_test_button_click" }
  141. ],
  142. flyTo: true
  143. })
  144. map.addLayer(graphicLayer)
  145. // 绑定事件
  146. graphicLayer.on(mars3d.EventType.load, function (event) {
  147. console.log("数据加载完成", event)
  148. eventTarget.fire("refTree")
  149. })
  150. graphicLayer.on(mars3d.EventType.click, function (event) {
  151. console.log("单击了图层", event)
  152. })
  153. }
  154. export function showPointForHeat() {
  155. removeLayer()
  156. graphicLayer = new mars3d.layer.GeoJsonLayer({
  157. name: "体育设施点-按热力图渲染",
  158. url: "https://data.mars3d.cn/file/geojson/hfty-point.json",
  159. symbol: {
  160. type: "heat", // 按热力图来渲染数据
  161. // 下面参数支持mars3d.layer.HeatLayer的所有构造参数
  162. heatStyle: {
  163. radius: 20,
  164. minOpacity: 0,
  165. maxOpacity: 0.4,
  166. blur: 0.3,
  167. gradient: {
  168. 0: "#e9ec36",
  169. 0.25: "#ffdd2f",
  170. 0.5: "#fa6c20",
  171. 0.75: "#fe4a33",
  172. 1: "#ff0000"
  173. }
  174. },
  175. // 以下为矩形矢量对象的样式参数
  176. style: {
  177. opacity: 1.0,
  178. outline: true, // 显示范围线,方便对照
  179. outlineColor: "#ffffff",
  180. outlineWidth: 1
  181. }
  182. },
  183. flyTo: true
  184. })
  185. map.addLayer(graphicLayer)
  186. // 绑定事件
  187. graphicLayer.on(mars3d.EventType.load, function (event) {
  188. console.log("数据加载完成", event)
  189. })
  190. }
  191. /**
  192. * 全国省界
  193. */
  194. export function showChinaLine() {
  195. removeLayer()
  196. graphicLayer = new mars3d.layer.GeoJsonLayer({
  197. name: "全国省界",
  198. url: "https://data.mars3d.cn/file/geojson/areas/100000_full.json",
  199. format: simplifyGeoJSON, // 用于自定义处理geojson
  200. // simplify: { tolerance: 0.00001 },
  201. symbol: {
  202. type: "polylineP",
  203. styleOptions: {
  204. width: 2,
  205. materialType: mars3d.MaterialType.LineFlow,
  206. materialOptions: {
  207. color: "#00ffff",
  208. image: "https://data.mars3d.cn/img/textures/fence-line.png",
  209. speed: 10,
  210. repeat_x: 10
  211. },
  212. distanceDisplayCondition: true,
  213. distanceDisplayCondition_far: 12000000,
  214. distanceDisplayCondition_near: 100000,
  215. label: {
  216. text: "{name}",
  217. position: "{center}", // 省会位置center
  218. font_size: 30,
  219. color: "#ffffff",
  220. outline: true,
  221. outlineColor: "#000000",
  222. scaleByDistance: true,
  223. scaleByDistance_far: 60000000,
  224. scaleByDistance_farValue: 0.2,
  225. scaleByDistance_near: 1000000,
  226. scaleByDistance_nearValue: 1,
  227. distanceDisplayCondition: true,
  228. distanceDisplayCondition_far: 10000000,
  229. distanceDisplayCondition_near: 100000,
  230. setHeight: 10000
  231. }
  232. }
  233. },
  234. flyTo: true
  235. })
  236. map.addLayer(graphicLayer)
  237. // 绑定事件
  238. graphicLayer.on(mars3d.EventType.load, function (event) {
  239. console.log("数据加载完成", event)
  240. eventTarget.fire("refTree")
  241. })
  242. }
  243. // 简化geojson的坐标
  244. function simplifyGeoJSON(geojson) {
  245. try {
  246. geojson = turf.simplify(geojson, { tolerance: 0.0001, highQuality: true, mutate: true })
  247. } catch (e) {
  248. //
  249. }
  250. return geojson
  251. }
  252. /**
  253. * 显示合肥区域面
  254. */
  255. export function showRegion() {
  256. removeLayer()
  257. graphicLayer = new mars3d.layer.GeoJsonLayer({
  258. name: "合肥市",
  259. url: "https://data.mars3d.cn/file/geojson/areas/340100_full.json",
  260. symbol: {
  261. styleOptions: {
  262. fill: true,
  263. randomColor: true, // 随机色
  264. opacity: 0.3,
  265. outline: true,
  266. outlineStyle: {
  267. color: "#FED976",
  268. width: 3,
  269. opacity: 1
  270. },
  271. // 高亮时的样式
  272. highlight: {
  273. opacity: 0.9,
  274. outlineStyle: {
  275. width: 6,
  276. color: "#ff0000",
  277. addHeight: 100
  278. },
  279. label: { show: true }
  280. },
  281. label: {
  282. show: false,
  283. // 面中心点,显示文字的配置
  284. text: "{name}", // 对应的属性名称
  285. opacity: 1,
  286. font_size: 40,
  287. color: "#ffffff",
  288. font_family: "楷体",
  289. outline: true,
  290. outlineColor: "#000000",
  291. outlineWidth: 3,
  292. background: false,
  293. backgroundColor: "#000000",
  294. backgroundOpacity: 0.1,
  295. font_weight: "normal",
  296. font_style: "normal",
  297. scaleByDistance: true,
  298. scaleByDistance_far: 20000000,
  299. scaleByDistance_farValue: 0.1,
  300. scaleByDistance_near: 1000,
  301. scaleByDistance_nearValue: 1,
  302. distanceDisplayCondition: false,
  303. distanceDisplayCondition_far: 10000,
  304. distanceDisplayCondition_near: 0,
  305. visibleDepth: false
  306. }
  307. }
  308. },
  309. popup: "{name}",
  310. // "tooltip": "{name}",
  311. flyTo: true
  312. })
  313. map.addLayer(graphicLayer)
  314. // 绑定事件
  315. graphicLayer.on(mars3d.EventType.load, function (event) {
  316. console.log("数据加载完成", event)
  317. eventTarget.fire("refTree")
  318. })
  319. graphicLayer.on(mars3d.EventType.click, function (event) {
  320. console.log("单击了图层", event)
  321. })
  322. }
  323. // 规划面
  324. export function showPlanningSurface() {
  325. removeLayer()
  326. map.setCameraView({ lat: 31.591382, lng: 120.718945, alt: 784, heading: 279, pitch: -67 })
  327. graphicLayer = new mars3d.layer.GeoJsonLayer({
  328. id: 1987,
  329. name: "用地规划",
  330. // 1.支持URL
  331. url: "https://data.mars3d.cn/file/geojson/guihua.json",
  332. // 2.也支持直接传入数据
  333. // data: {
  334. // type: "FeatureCollection",
  335. // name: "用地规划",
  336. // features: [] //数据已省略,可以从上面guihua.json中复制
  337. // },
  338. symbol: {
  339. type: "polygonC",
  340. styleOptions: {
  341. opacity: 0.6,
  342. color: "#0000FF"
  343. },
  344. styleField: "类型",
  345. styleFieldOptions: {
  346. 一类居住用地: { color: "#FFDF7F" },
  347. 二类居住用地: { color: "#FFFF00" },
  348. 社区服务用地: { color: "#FF6A38" },
  349. 幼托用地: { color: "#FF6A38" },
  350. 商住混合用地: { color: "#FF850A" },
  351. 行政办公用地: { color: "#FF00FF" },
  352. 文化设施用地: { color: "#FF00FF" },
  353. 小学用地: { color: "#FF7FFF" },
  354. 初中用地: { color: "#FF7FFF" },
  355. 体育场用地: { color: "#00A57C" },
  356. 医院用地: { color: "#A5527C" },
  357. 社会福利用地: { color: "#FF7F9F" },
  358. 商业用地: { color: "#FF0000" },
  359. 商务用地: { color: "#7F0000" },
  360. 营业网点用地: { color: "#FF7F7F" },
  361. 一类工业用地: { color: "#A57C52" },
  362. 社会停车场用地: { color: "#C0C0C0" },
  363. 通信用地: { color: "#007CA5" },
  364. 排水用地: { color: "#00BFFF" },
  365. 公园绿地: { color: "#00FF00" },
  366. 防护绿地: { color: "#007F00" },
  367. 河流水域: { color: "#7FFFFF" },
  368. 配建停车场: { color: "#ffffff" },
  369. 道路用地: { color: "#ffffff" }
  370. }
  371. },
  372. popup: "类型:{类型}"
  373. // flyTo: true,
  374. })
  375. map.addLayer(graphicLayer)
  376. // 下面代码演示如果再config.json中配置的图层,如何绑定额外事件方法
  377. // 绑定config.json中对应图层配置的"id"值图层的单击事件(比如下面是id:1987对应图层)
  378. const layerTest = map.getLayerById(1987)
  379. // 绑定事件
  380. layerTest.on(mars3d.EventType.load, function (event) {
  381. console.log("数据加载完成", event)
  382. eventTarget.fire("refTree")
  383. })
  384. layerTest.on(mars3d.EventType.click, function (event) {
  385. // 单击事件
  386. console.log("单击了图层", event)
  387. })
  388. }
  389. /**
  390. * 立体建筑物
  391. */
  392. export function showBuilding() {
  393. removeLayer()
  394. graphicLayer = new mars3d.layer.GeoJsonLayer({
  395. name: "建筑物面",
  396. url: "https://data.mars3d.cn/file/geojson/buildings-demo.json",
  397. // filter: "floors>30", // 筛选数据
  398. symbol: {
  399. styleOptions: {
  400. color: "#0d3685",
  401. outlineColor: "#0d3685",
  402. opacity: 0.8
  403. },
  404. // styleFieldOptions: {
  405. // "floors<20": { color: "#ff0000" },
  406. // "floors>20 && floors<30": { color: "#fff000" },
  407. // "floors>30": { color: "#00ffff" }
  408. // },
  409. callback: function (attr, styleOpt) {
  410. const diffHeight = Number(attr.floors || 1) * Number(attr.flo_height)
  411. return { height: 0, diffHeight }
  412. }
  413. },
  414. center: { lat: 31.928659, lng: 120.420654, alt: 838, heading: 344, pitch: -42 },
  415. popup: "all",
  416. popupOptions: {
  417. showNull: true
  418. },
  419. flyTo: true
  420. })
  421. map.addLayer(graphicLayer)
  422. // 绑定事件
  423. graphicLayer.on(mars3d.EventType.load, function (event) {
  424. console.log("数据加载完成", event)
  425. eventTarget.fire("refTree")
  426. })
  427. }
  428. /**
  429. * 分层分户立体建筑物
  430. */
  431. export function showFloor() {
  432. removeLayer()
  433. graphicLayer = new mars3d.layer.GeoJsonLayer({
  434. name: "分层分户建筑物面",
  435. url: "https://data.mars3d.cn/file/geojson/huxing.json",
  436. symbol: {
  437. styleOptions: {
  438. color: "#ffffff",
  439. opacity: 0.2,
  440. outline: true,
  441. outlineColor: "#63AEFF",
  442. outlineOpacity: 0.3,
  443. highlight: {
  444. type: "click",
  445. color: "#00ffff",
  446. opacity: 0.6
  447. }
  448. },
  449. callback: function (attr, styleOpt) {
  450. const flrH = attr.floorh || 0 // 底面高度
  451. const lyrH = attr.layerh || 0 // 楼层高度
  452. return { height: flrH, diffHeight: lyrH }
  453. }
  454. },
  455. // popup: "all",
  456. center: { lat: 31.821524, lng: 117.179329, alt: 255, heading: 25, pitch: -48 },
  457. flyTo: true
  458. })
  459. map.addLayer(graphicLayer)
  460. // 绑定事件
  461. graphicLayer.on(mars3d.EventType.load, function (event) {
  462. console.log("数据加载完成", event)
  463. eventTarget.fire("refTree")
  464. })
  465. }
  466. /**
  467. * 行政区划 ,转为wall显示
  468. */
  469. export function showBoundaryWall() {
  470. removeLayer()
  471. map.setCameraView({ lat: 30.561661, lng: 117.663884, alt: 113078, heading: 346, pitch: -43 })
  472. graphicLayer = new mars3d.layer.GeoJsonLayer({
  473. name: "合肥市",
  474. url: "https://data.mars3d.cn/file/geojson/areas/340100_full.json",
  475. symbol: {
  476. type: "wall",
  477. styleOptions: {
  478. diffHeight: 5000, // 墙高
  479. materialType: mars3d.MaterialType.LineFlow,
  480. materialOptions: {
  481. color: "#00ffff", // 颜色
  482. opacity: 0.6, // 透明度
  483. image: "https://data.mars3d.cn/img/textures/fence.png", // 图片
  484. repeatX: 1, // 重复数量
  485. axisY: true, // 竖直方向
  486. speed: 10 // 速度
  487. },
  488. // 高亮时的样式
  489. highlight: {
  490. type: "click",
  491. color: "#ffff00"
  492. }
  493. }
  494. },
  495. popup: "{name}"
  496. // "tooltip": "{name}",
  497. // flyTo: true,
  498. })
  499. map.addLayer(graphicLayer)
  500. // 绑定事件
  501. graphicLayer.on(mars3d.EventType.load, function (event) {
  502. console.log("数据加载完成", event)
  503. eventTarget.fire("refTree")
  504. })
  505. graphicLayer.on(mars3d.EventType.click, function (event) {
  506. console.log("单击了图层", event)
  507. })
  508. }
  509. /**
  510. * 显示特殊面数据(单体化)
  511. */
  512. let tilesetLayer
  513. export function showMonomer() {
  514. removeLayer()
  515. // 三维模型
  516. if (!tilesetLayer) {
  517. tilesetLayer = new mars3d.layer.TilesetLayer({
  518. name: "文庙",
  519. type: "3dtiles",
  520. url: "https://data.mars3d.cn/3dtiles/qx-simiao/tileset.json",
  521. position: { alt: 38.8 },
  522. maximumScreenSpaceError: 1,
  523. show: true
  524. })
  525. map.addLayer(tilesetLayer)
  526. }
  527. graphicLayer = new mars3d.layer.GeoJsonLayer({
  528. name: "文庙-单体化",
  529. url: " //data.mars3d.cn/file/geojson/dth-wm.json",
  530. symbol: {
  531. type: "polygonP",
  532. styleOptions: {
  533. // 单体化默认显示样式
  534. color: "rgba(255, 255, 255, 0.01)",
  535. clampToGround: true,
  536. classification: true,
  537. // 单体化鼠标移入或单击后高亮的样式
  538. highlight: {
  539. // type: mars3d.EventType.click,
  540. color: "rgba(255,255,0,0.4)"
  541. }
  542. }
  543. },
  544. popup: [
  545. { field: "name", name: "房屋名称" },
  546. { field: "jznf", name: "建造年份" },
  547. { field: "ssdw", name: "所属单位" },
  548. { field: "remark", name: "备注信息" }
  549. ],
  550. center: { lat: 33.589442, lng: 119.031613, alt: 254, heading: 5, pitch: -37 },
  551. flyTo: true
  552. })
  553. map.addLayer(graphicLayer)
  554. // 绑定事件
  555. graphicLayer.on(mars3d.EventType.load, function (event) {
  556. console.log("数据加载完成", event)
  557. eventTarget.fire("refTree")
  558. })
  559. }
  560. /**
  561. * 显示世界各国
  562. */
  563. export function showWorld() {
  564. removeLayer()
  565. map.setCameraView({ lat: 22.564341, lng: 89.44688, alt: 10817167, heading: 0, pitch: -87 })
  566. graphicLayer = new mars3d.layer.GeoJsonLayer({
  567. name: "国界线",
  568. url: "https://data.mars3d.cn/file/geojson/world.json",
  569. symbol: {
  570. type: "polygonP",
  571. styleOptions: {
  572. fill: true,
  573. // color: '#ffffff',
  574. // opacity: 0.01,
  575. randomColor: true,
  576. opacity: 0.5,
  577. // 高亮时的样式
  578. highlight: {
  579. type: "click",
  580. color: "#ffff00"
  581. }
  582. },
  583. styleField: "name",
  584. styleFieldOptions: {
  585. Russia: { clampToGround: true }
  586. }
  587. },
  588. popup: "{name} {name_cn}"
  589. })
  590. map.addLayer(graphicLayer)
  591. // 绑定事件
  592. graphicLayer.on(mars3d.EventType.load, function (event) {
  593. console.log("数据加载完成", event)
  594. eventTarget.fire("refTree")
  595. })
  596. graphicLayer.on(mars3d.EventType.click, function (event) {
  597. console.log("单击了图层", event)
  598. })
  599. }
  600. // 加载GCJ数据进行纠偏
  601. export function showGCJ02Data() {
  602. removeLayer()
  603. const gcjLayer = new mars3d.layer.GeoJsonLayer({
  604. name: "纠偏前",
  605. url: "https://data.mars3d.cn/file/geojson/areas/340303.json",
  606. symbol: {
  607. styleOptions: {
  608. fill: false,
  609. outline: true,
  610. outlineStyle: {
  611. color: "#FF0000",
  612. width: 3
  613. }
  614. }
  615. },
  616. popup: "纠偏前GCJ02坐标"
  617. })
  618. map.addLayer(gcjLayer)
  619. graphicLayer = new mars3d.layer.GeoJsonLayer({
  620. name: "纠偏后",
  621. url: "https://data.mars3d.cn/file/geojson/areas/340303.json",
  622. chinaCRS: mars3d.ChinaCRS.GCJ02, // 标识数据坐标,内部会纠偏
  623. symbol: {
  624. styleOptions: {
  625. fill: false,
  626. outline: true,
  627. outlineStyle: {
  628. color: "#00ffff",
  629. width: 3
  630. }
  631. }
  632. },
  633. popup: "纠偏后WGS坐标",
  634. flyTo: true
  635. })
  636. map.addLayer(graphicLayer)
  637. // 绑定事件
  638. graphicLayer.on(mars3d.EventType.load, function (event) {
  639. console.log("数据加载完成", event)
  640. eventTarget.fire("refTree")
  641. })
  642. }
  643. export function getGraphicsTree(options) {
  644. return graphicLayer.getGraphicsTree(options)
  645. }
  646. export function getGraphicById(id) {
  647. return graphicLayer.getGraphicById(id)
  648. }