947a5034627e77dcacc27301bbe043e4aa13cdd6.svn-base 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. // import './business/test'
  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. attribute: {'content': ''},
  24. forceRenderOnMoving: true,
  25. forceRenderOnZooming: true,
  26. forceRenderOnRotating: true,
  27. baseLayer: new maptalks.TileLayer('tile', {
  28. 'urlTemplate': 'http://tile0.f4map.com/tiles/f4_3d/{z}/{x}/{y}.png',
  29. // http://tile0.f4map.com/tiles/f4_3d/{z}/{x}/{y}.png
  30. // http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png
  31. 'subdomains': ['a', 'b', 'c', 'd']
  32. })
  33. })
  34. const canvasTile = new maptalks.CanvasTileLayer('tile', {
  35. urlTemplate: 'https://{s}.data.osmbuildings.org/0.2/anonymous/tile/{z}/{x}/{y}.json',
  36. subdomains: ['a', 'b', 'c', 'd'],
  37. forceRenderOnMoving: true,
  38. forceRenderOnZooming: true,
  39. forceRenderOnRotating: true,
  40. repeatWorld: false,
  41. maxAvailableZoom: 15
  42. })
  43. map.addLayer(canvasTile)
  44. global.threeLayer = new ThreeLayer('t', {
  45. forceRenderOnMoving: true,
  46. forceRenderOnZooming: true,
  47. forceRenderOnRotating: true
  48. })
  49. threeLayer.prepareToDraw = initAmbient
  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.draw = () => {
  58. addGeo(getCurrTiles());
  59. delete threeLayer.draw;
  60. }
  61. threeLayer.addTo(map)
  62. let timeout = null
  63. map.on('moving moveend zoomend dragrotating dragrotateend', () => {
  64. clearTimeout(timeout)
  65. timeout = setTimeout(() => {
  66. meshStaus()
  67. addGeo(getCurrTiles())
  68. status.listStatus()
  69. }, 500)
  70. });