35afea3bf8f0e9601fb75c7664b49093e3f22b31.svn-base 2.4 KB

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