123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import 'babel-core/register'
- import 'babel-polyfill'
- import './style/public.css'
- import * as maptalks from 'maptalks'
- import { ThreeLayer } from 'maptalks.three'
- import meshStaus from './business/meshStaus'
- import initAmbient from './business/initAmbient'
- import { addGeo } from './core/dyWoker'
- import Event from './core/Event'
- import * as status from './business/statusManagement'
- let args = status.analysis()
- global.bus = new Event()
- global.map = new maptalks.Map('map', {
- center: [args.lon, args.lat],
- zoom: args.zoom,
- bearing: args.bearing,
- maxZoom: 20,
- minZoom: 15,
- maxPitch: 70,
- maxVisualPitch: 100,
- doubleClickZoom: false,
- forceRenderOnMoving: true,
- forceRenderOnZooming: true,
- forceRenderOnRotating: true,
- baseLayer: new maptalks.TileLayer('base', {
- 'urlTemplate': 'http://{s}.tile.osm.org/{z}/{x}/{y}.png',
- 'subdomains': ['a', 'b', 'c']
- })
- })
- // Maker承载容器
- global.vector = new maptalks.VectorLayer('vector', {
- enableAltitude: true, // enable altitude
- altitudeProperty: 'altitude' // altitude property in properties, default by 'altitude'
- })
- vector.addTo(map)
- // 高层数据获取
- const canvasTile = new maptalks.CanvasTileLayer('tile', {
- urlTemplate: 'https://{s}.data.osmbuildings.org/0.2/anonymous/tile/{z}/{x}/{y}.json',
- subdomains: ['a', 'b', 'c', 'd'],
- forceRenderOnMoving: true,
- forceRenderOnZooming: true,
- forceRenderOnRotating: true,
- repeatWorld: false,
- maxAvailableZoom: 15
- })
- map.addLayer(canvasTile)
- // 3DThree与map结合
- global.threeLayer = new ThreeLayer('t', {
- forceRenderOnMoving: true,
- forceRenderOnZooming: true,
- forceRenderOnRotating: true
- })
- threeLayer.prepareToDraw = initAmbient
- // 获取高层数据
- function getCurrTiles() {
- let tileGrids = canvasTile.getTiles().tileGrids
- for (var i = 0; i < tileGrids.length; i++) {
- if (tileGrids[i].zoom >= 15) break
- }
- return tileGrids[i].tiles
- }
- threeLayer.draw = () => {
- addGeo(getCurrTiles());
- delete threeLayer.draw;
- }
- threeLayer.addTo(map)
- let timeout = null
- map.on('moving moveend zoomend dragrotating dragrotateend', () => {
- clearTimeout(timeout)
- timeout = setTimeout(() => {
- meshStaus()
- addGeo(getCurrTiles())
- status.listStatus()
- }, 500)
- });
|