f5262f56c3bccce00469899b5bbf32c68de8c646.svn-base 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import 'babel-core/register'
  2. import 'babel-polyfill'
  3. import './style/public.css'
  4. import * as maptalks from 'maptalks'
  5. import { ThreeLayer } from 'maptalks.three'
  6. import meshStaus from './business/meshStaus'
  7. import initAmbient from './business/initAmbient'
  8. import { addGeo } from './core/dyWoker'
  9. import Event from './core/Event'
  10. import * as status from './business/statusManagement'
  11. let args = status.analysis()
  12. global.bus = new Event()
  13. global.map = new maptalks.Map('map', {
  14. center: [args.lon, args.lat],
  15. zoom: args.zoom,
  16. bearing: args.bearing,
  17. maxZoom: 20,
  18. minZoom: 15,
  19. maxPitch: 70,
  20. maxVisualPitch: 100,
  21. doubleClickZoom: false,
  22. forceRenderOnMoving: true,
  23. forceRenderOnZooming: true,
  24. forceRenderOnRotating: true,
  25. baseLayer: new maptalks.TileLayer('base', {
  26. 'urlTemplate': 'http://{s}.tile.osm.org/{z}/{x}/{y}.png',
  27. 'subdomains': ['a', 'b', 'c']
  28. })
  29. })
  30. // Maker承载容器
  31. global.vector = new maptalks.VectorLayer('vector', {
  32. enableAltitude: true, // enable altitude
  33. altitudeProperty: 'altitude' // altitude property in properties, default by 'altitude'
  34. })
  35. vector.addTo(map)
  36. // 高层数据获取
  37. const canvasTile = new maptalks.CanvasTileLayer('tile', {
  38. urlTemplate: 'https://{s}.data.osmbuildings.org/0.2/anonymous/tile/{z}/{x}/{y}.json',
  39. subdomains: ['a', 'b', 'c', 'd'],
  40. forceRenderOnMoving: true,
  41. forceRenderOnZooming: true,
  42. forceRenderOnRotating: true,
  43. repeatWorld: false,
  44. maxAvailableZoom: 15
  45. })
  46. map.addLayer(canvasTile)
  47. // 3DThree与map结合
  48. global.threeLayer = new ThreeLayer('t', {
  49. forceRenderOnMoving: true,
  50. forceRenderOnZooming: true,
  51. forceRenderOnRotating: true
  52. })
  53. threeLayer.prepareToDraw = initAmbient
  54. // 获取高层数据
  55. function getCurrTiles() {
  56. let tileGrids = canvasTile.getTiles().tileGrids
  57. for (var i = 0; i < tileGrids.length; i++) {
  58. if (tileGrids[i].zoom >= 15) break
  59. }
  60. return tileGrids[i].tiles
  61. }
  62. threeLayer.draw = () => {
  63. addGeo(getCurrTiles());
  64. delete threeLayer.draw;
  65. }
  66. threeLayer.addTo(map)
  67. let timeout = null
  68. map.on('moving moveend zoomend dragrotating dragrotateend', () => {
  69. clearTimeout(timeout)
  70. timeout = setTimeout(() => {
  71. meshStaus()
  72. addGeo(getCurrTiles())
  73. status.listStatus()
  74. }, 500)
  75. });