955d8dfa0d0aaa26a0119aeb92bea568bab00dc6.svn-base 2.3 KB

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