webgis开发之mapbox(1)

05-28 阅读 0评论

MAPBOX

webgis开发之mapbox(1)

01、mapbox加载地图

webgis开发之mapbox(1)



    
    
    mapbox
    
    
    
    
        *{
            margin: 0;
            padding: 0;
        }
        #map{
            width: 100vw;
            height: 100vh;
        }
    


    
    
    
        mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';
        // 3、创建地图
        const map = new mapboxgl.Map({
            container:'map',    //指定地图容器id
            style:'mapbox://styles/mapbox/streets-v12', //地图风格
            center:[114.30,30.50],  //地图中心坐标  
            zoom:12,    //缩放比例
            pitch:45,   //俯仰角 默认是0(0-90)
            bearing:90  //水平角 默认是0 (-180-180)
        });
        console.log(map.getBearing)
        console.log(map.getCenter)
        // setInterval(() => {
        //     let bearing = map.getBearing()
        //     bearing++
        //     map.setBearing(bearing)
        // }, 20);
    

02、切换风格、投影方式



    
    
    mapbox
    
    
    
    
        * {
            margin: 0;
            padding: 0;
        }
        #map {
            width: 100vw;
            height: 100vh;
            z-index: 1;
        }
        select{
            position: absolute;
            top: 2%;
            left: 2%;
            z-index: 2;
        }
    


    
        Mapbox Light
        Mapbox Dark
    
    
        Mercator
        Globe
        Albers
        Equal Earth
        Equirectangular
        
        Lambert Conformal Conic
        
        Natural Earth
        Winkel Tripel
        
    
    
    
        mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';
        // 3、创建地图
        const map = new mapboxgl.Map({
            container: 'map',    //指定地图容器id
            style: 'mapbox://styles/mapbox/streets-v12', //地图风格
            center: [114.30, 30.50],  //地图中心坐标  
            // zoom: 10,    //缩放比例
            pitch: 45,   //俯仰角 默认是0(0-90)
            bearing: 90  //水平角 默认是0 (-180-180)
        });
        function changeStyle(event){
            // console.log(event)
            map.setStyle(event.target.value)
        }
        function changeProjection(event){
            // console.log(event)
            map.setProjection(event.target.value)
        }
    

03、加载高德底图



    
    
    mapbox
    
    
    
    
        * {
            margin: 0;
            padding: 0;
        }
        #map {
            width: 100vw;
            height: 100vh;
            z-index: 1;
        }
        select {
            position: absolute;
            top: 2%;
            left: 2%;
            z-index: 2;
        }
    


    
        Mapbox Light
        Mapbox Dark
    
    
        Mercator
        Globe
        Albers
        Equal Earth
        Equirectangular
        
            Lambert Conformal Conic
        
        Natural Earth
        Winkel Tripel
    
    
    
    
        mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';
        // 3、创建地图
        const map = new mapboxgl.Map({
            /* 将地图挂载到对应的DOM上 相当于ol的target */
            container: "map",
            /* 相当于ol的layers */
            style: {
                "version": 8,
                "sources": {
                    "raster-tiles": {
                        "type": "raster",
                        "tiles": ["http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}"],
                        "tileSize": 256
                    }
                },
                "layers": [{
                    "id": "simple-tiles",
                    "type": "raster",
                    "source": "raster-tiles",
                    "minzoom": 0,
                    "maxzoom": 22
                }]
            },
            center: [114.30, 30.50],
            zoom: 6,
            projection: 'globe'
        })
        function changeStyle(event) {
            // console.log(event)
            map.setStyle(event.target.value)
        }
        function changeProjection(event) {
            // console.log(event)
            map.setProjection(event.target.value)
        }
    

04、设置大气层样式



    
    
    mapbox
    
    
    
    
        *{
            margin: 0;
            padding: 0;
        }
        #map{
            width: 100vw;
            height: 100vh;
        }
    


    
    
        mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';
        // 3、创建地图
        const map = new mapboxgl.Map({
            container:'map',    //指定地图容器id
            style:'mapbox://styles/mapbox/streets-v12', //地图风格
            center:[114.30,30.50],  //地图中心坐标  
            zoom:2,    //缩放比例
        });
        map.on('style.load',()=>{
            map.setFog({
                'color':'blue',
                'high-color':'black',
                'space-color':'red'
            })
        })
    

05、地图事件



    
    
    mapbox
    
    
    
    
        *{
            margin: 0;
            padding: 0;
        }
        #map{
            width: 100vw;
            height: 100vh;
        }
        btn1{
            position: fixed;
            top: 2%;
            left: 2%;
            z-index: 99;
        }
        btn2{
            position: fixed;
            top: 2%;
            left: 6%;
            z-index: 99;
        }
    


    跳转
    移除
    
    
        mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';
        // 3、创建地图
        const map = new mapboxgl.Map({
            container:'map',    //指定地图容器id
            style:'mapbox://styles/mapbox/streets-v12', //地图风格
            center:[114.30,30.50],  //地图中心坐标  
            zoom:12,    //缩放比例
        });
        function mapTo(){
            // map.setCenter([114.3,30.5])  //设置地图中心坐标 直接跳转地图
            map.flyTo({ //飞行到某个点,带飞行动画
                center:[118,38.5],
                zoom:8,
                speed:0.5,
            })
            // map.easeTo({    //缓慢的移过去  有过渡效果
            //     center:[112,30],
            //     duration:5000   //过渡时间 毫秒
            // })
        }
        // function showLonlat(e){
        //     console.log(e)
        // }
        // map.on('click',showLonlat)
        // function removeEvent(){
        //     map.off('click',showLonlat)
        // }
    

06、定时器自转



    
    
    mapbox
    
    
    
    
        *{
            margin: 0;
            padding: 0;
        }
        #map{
            width: 100vw;
            height: 100vh;
        }
    


    
    
        mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';
        // 3、创建地图
        const map = new mapboxgl.Map({
            container:'map',    //指定地图容器id
            style:'mapbox://styles/mapbox/streets-v12', //地图风格
            center:[114.30,30.50],  //地图中心坐标  
            zoom:1,    //缩放比例
        });
        setInterval(() => {
            let center =map.getCenter()
            center.lng+=1
            map.easeTo({
                center:[center.lng,center.lat],
                duration:10,
            })
            // map.setCenter([c.lng++,lat++])
        }, 20);
    

07、事件自转



    
    
    mapbox
    
    
    
    
        * {
            margin: 0;
            padding: 0;
        }
        #map {
            width: 100vw;
            height: 100vh;
        }
        button {
            position: absolute;
            top: 2%;
            left: 2%;
            z-index: 2;
        }
    


    Stop
    
    
        mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';
        // 3、创建地图
        const map = new mapboxgl.Map({
            container: 'map',    //指定地图容器id
            style: 'mapbox://styles/mapbox/streets-v12', //地图风格
            center: [114.30, 30.50],  //地图中心坐标  
            zoom: 1,    //缩放比例
        });
        function stop() {
            map.off('moveend', animatian)
        }
        function animatian() {
            let center = map.getCenter()
            center.lng += 1
            map.easeTo({
                center: [center.lng, center.lat],
                duration: 2,
            })
        }
        map.on('moveend', animatian)
    

08、点击控制自转



    
    
    mapbox
    
    
    
    
        * {
            margin: 0;
            padding: 0;
        }
        #map {
            width: 100vw;
            height: 100vh;
        }
        button {
            position: absolute;
            top: 2%;
            left: 2%;
            z-index: 2;
        }
    


    Stop
    
    
        mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';
        // 3、创建地图
        const map = new mapboxgl.Map({
            container: 'map',    //指定地图容器id
            style: 'mapbox://styles/mapbox/streets-v12', //地图风格
            center: [114.30, 30.50],  //地图中心坐标  
            zoom: 1,    //缩放比例
        });
        function animatian() {
            let center = map.getCenter()
            center.lng += 1
            map.easeTo({
                center: [center.lng, center.lat],
                duration: 2,
            })
        }
        function toMove() {
            map.on('moveend', animatian)
            animatian()
        }
        function stopMove() {
            map.off('moveend', animatian)
        }
        let moving = false
        map.on('click', () => {
            if (moving) {
                toMove()
            } else {
                stopMove()
            }
            moving = !moving
        })
    


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]