百度地图总结

百度地图使用流程

首先注册一下账号和自己的ak

在这里插入图片描述

开始使用百度地图api开发

  • 第一步:创建HTML 并添加一个容器
	<div id="map"></div>
  • 第二步:引入百度地图js
<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=你申请的ak">
</script>
  • 使用百度地图api开始写对应的代码
<script>
    //实例化百度地图
    const map = new BMapGL.Map('map')
        //设置一个坐标点
    const point = new BMapGL.Point(114.611458, 36.660914)
        //生成百度地图
    map.centerAndZoom(point, 16)
        //实现鼠标滚轮缩放
    map.enableScrollWheelZoom()
</script>

地图设置类型

  //设置地图类型  BMAP_EARTH_MAP:卫星图,
  //BMAP_NORMAL_MAP:普通街道地图
    // map.setMapType(BMAP_EARTH_MAP)
    map.setMapType(BMAP_NORMAL_MAP)

地图异步加载

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        html {
            height: 100%
        }
        
        body {
            height: 100%;
            margin: 0px;
            padding: 0px
        }
        
        #map {
            width: 900px;
            height: 450px;
            border: 1px solid #ccc;
            margin: 20px auto;
        }
    </style>

</head>

<body>
    <div id="map"></div>
</body>
<!-- <script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=GARHEjrSEtihCn5PY0TpvMBYdCa02TOq"> -->
<!-- </script> -->
<script>
    window.onload = loadScript

    function loadScript() {
        //创建script
        const script = document.createElement('script')
        script.src = 'https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=GARHEjrSEtihCn5PY0TpvMBYdCa02TOq&callback=initmap'
        document.body.appendChild(script)
    }

    //初始化地图函数
    function initmap() {
        //实例化百度地图
        const map = new BMapGL.Map('map')
            //设置一个坐标点
        const point = new BMapGL.Point(116.211596, 40.143386)
            //生成百度地图
        map.centerAndZoom(point, 18)
            //实现鼠标滚轮缩放
        map.enableScrollWheelZoom()

        //设置地图类型  BMAP_EARTH_MAP:卫星图,BMAP_NORMAL_MAP:普通街道地图
        // map.setMapType(BMAP_EARTH_MAP)
        map.setMapType(BMAP_NORMAL_MAP)
    }
</script>

</html>

地图旋转与倾斜

	//倾斜
	map.setTilt()
	//旋转
	map.setHeading(i)

地图常用控件

<script>
    //实例化百度地图
    const map = new BMapGL.Map('map')
        //设置一个坐标点
    const point = new BMapGL.Point(116.404137, 39.914939)
        //生成百度地图
    map.centerAndZoom(point, 18)
        //实现鼠标滚轮缩放
    map.enableScrollWheelZoom()

    //最小缩放级别
    // map.setMinZoom(12)
    //最大缩放级别
    // map.setMaxZoom(16)

    //实例化缩放控件
    const zoomCtrl = new BMapGL.ZoomControl({
            anchor: BMAP_ANCHOR_TOP_LEFT,
            offset: new BMapGL.Size(10, 15)
        })
        //再将缩放控件添加到百度地图上
    map.addControl(zoomCtrl)

    //实例化比例尺控件
    const scaleCtrl = new BMapGL.ScaleControl({
            anchor: BMAP_ANCHOR_TOP_RIGHT,
            offset: new BMapGL.Size(10, 15)
        })
        //再添加比例尺到地图上
    map.addControl(scaleCtrl)
    </script>

添加折线,图像标记,信息窗口

<script>
    //实例化百度地图
    const map = new BMapGL.Map('map')
        //设置一个坐标点
    const point = new BMapGL.Point(116.215286, 40.142213)
        //生成百度地图
    map.centerAndZoom(point, 18)
        //实现鼠标滚轮缩放
    map.enableScrollWheelZoom()

    //最小缩放级别
    // map.setMinZoom(12)
    //最大缩放级别
    // map.setMaxZoom(16)

    //实例化缩放控件
    const zoomCtrl = new BMapGL.ZoomControl({
            anchor: BMAP_ANCHOR_TOP_LEFT,
            offset: new BMapGL.Size(10, 15)
        })
        //再将缩放控件添加到百度地图上
    map.addControl(zoomCtrl)

    //实例化比例尺控件
    const scaleCtrl = new BMapGL.ScaleControl({
            anchor: BMAP_ANCHOR_TOP_RIGHT,
            offset: new BMapGL.Size(10, 15)
        })
        //再添加比例尺到地图上
    map.addControl(scaleCtrl)


    const url = 'https://m.360buyimg.com/babel/jfs/t1/57520/8/375/4092/5cd4f1d8Ea1266047/1c590322ece537ba.png'
        //实例化icon
    const icon = new BMapGL.Icon(url, new BMapGL.Size(30, 30), {
            anchor: new BMapGL.Size(0, 0),
            imageOffset: new BMapGL.Size(0, 0),
        })
        //添加图像标记
    const marker = new BMapGL.Marker(point, {
        icon: icon
    })

    //添加marker到地图上
    map.addOverlay(marker)

    //绘制折线
    const pointArr = [
        new BMapGL.Point(116.215735, 40.141989),
        new BMapGL.Point(116.215156, 40.142696),
        new BMapGL.Point(116.214594, 40.142472),
        new BMapGL.Point(116.215043, 40.141789),
        //  new BMapGL.Point(116.215735, 40.141989),
    ];
    const options = {
            strokeColor: "#f00",
            strokeWeight: 10,
            strokeOpacity: 0.3,
            //  fillColor: '#00f',
            // fillOpacity: 0.3
        }
        // const pl = new BMapGL.Polyline(pointArr, options)
    const pl = new BMapGL.Polygon(pointArr, options)
    map.addOverlay(pl)

    //添加文本
    const lab = new BMapGL.Label('积云教育', {
        offset: new BMapGL.Size(-30, -20),
        position: point
    })

    lab.setStyle({
        border: '1px dashed #00f',
        padding: '6px 4px',
        background: "#f00",
        color: "#ff0"
    })

    map.addOverlay(lab)

    //实例化信息窗口
    const ohtml = `
      <div>
        <h4>欢迎来到积云教育学习高薪就业课程</h4>
        <img style='width:30%' src='https://t7.baidu.com/it/u=1951548898,3927145&fm=193&f=GIF' />
      </div>
    `
    const infoW = new BMapGL.InfoWindow(ohtml, {
        title: '欢迎!',
        width: 300,
        height: 200,
        offset: new BMapGL.Size(0, 0)
    })

    //点击文本标签打开信息窗口
    lab.addEventListener('click', function() {
        map.openInfoWindow(infoW, point)
    }, false)
</script>

视角动画

<script>
    //实例化百度地图
    const map = new BMapGL.Map('map')
        //设置一个坐标点
    const point = new BMapGL.Point(116.403963, 39.915119)
        //生成百度地图
    map.centerAndZoom(point, 18)
        //实现鼠标滚轮缩放
    map.enableScrollWheelZoom()

    //倾斜
    map.setTilt(40)
        //旋转
    map.setHeading(50)

    //配置动画数组
    const dhArr = [{
            center: new BMapGL.Point(116.307092, 40.054922),
            zoom: 20,
            tilt: 50,
            heading: 0,
            percentage: 0
        }, {
            center: new BMapGL.Point(116.307631, 40.055391),
            zoom: 21,
            tilt: 70,
            heading: 0,
            percentage: 0.1
        }, {
            center: new BMapGL.Point(116.306858, 40.057887),
            zoom: 21,
            tilt: 70,
            heading: 0,
            percentage: 0.25
        }, {
            center: new BMapGL.Point(116.306858, 40.057887),
            zoom: 21,
            tilt: 70,
            heading: -90,
            percentage: 0.35
        }, {
            center: new BMapGL.Point(116.307904, 40.058118),
            zoom: 21,
            tilt: 70,
            heading: -90,
            percentage: 0.45
        }, {
            center: new BMapGL.Point(116.307904, 40.058118),
            zoom: 21,
            tilt: 70,
            heading: -180,
            percentage: 0.55
        }, {
            center: new BMapGL.Point(116.308902, 40.055954),
            zoom: 21,
            tilt: 70,
            heading: -180,
            percentage: 0.75
        }, {
            center: new BMapGL.Point(116.308902, 40.055954),
            zoom: 21,
            tilt: 70,
            heading: -270,
            percentage: 0.85
        }, {
            center: new BMapGL.Point(116.307779, 40.055754),
            zoom: 21,
            tilt: 70,
            heading: -360,
            percentage: 0.95
        }, {
            center: new BMapGL.Point(116.307092, 40.054922),
            zoom: 20,
            tilt: 50,
            heading: -360,
            percentage: 1
        }, ]
        //配置动画选项
    const options = {
            delay: 0,
            duration: 8000,
            interation: 1
        }
        //实例化视角动画
    const dh = new BMapGL.ViewAnimation(dhArr, options)

    //启动动画
    map.startViewAnimation(dh)
</script>

轨迹动画

<script>
    //实例化百度地图
    const map = new BMapGL.Map('map')
        //设置一个坐标点
    const point = new BMapGL.Point(116.403963, 39.915119)
        //生成百度地图
    map.centerAndZoom(point, 16)
        //实现鼠标滚轮缩放
    map.enableScrollWheelZoom()

    //配置Polylin坐标点数组
    const plArr = [
        //坐标点
        new BMapGL.Point(116.380597, 39.913314),
        new BMapGL.Point(116.413008, 39.91431),
        new BMapGL.Point(116.413224, 39.921504),
        new BMapGL.Point(116.424363, 39.921615),
        new BMapGL.Point(116.424578, 39.914421),
    ]

    //实例化PolyLine
    const pl = new BMapGL.Polyline(plArr)

    //创建个轨迹动画对象,并配置参数
    // const track=new BMapGLLib.TrackAnimation(地图实例名,轨迹路径,配置项)
    const track = new BMapGLLib.TrackAnimation(map, pl, {
        overallView: true,
        tilt: 30, // 轨迹播放的角度,默认为55
        duration: 20000, // 动画持续时长,默认为10000,单位ms
        delay: 2000 // 动画开始的延迟,默认0,单位ms
    })

    //启动轨迹动画
    track.start()
</script>

在vue中如何使用地图

vue 2的官方文档
vue3的官方文档

vue3百度地图布局

安装地图依赖
 npm install vue-baidu-map-3x --save
注册为全局百度地图
import { createApp } from 'vue'
import App from './App.vue'

//引入百度地图组件依赖
import BaiduMap from 'vue-baidu-map-3x'

const app = createApp(App);

//注册为全局百度地图组件
app.use(BaiduMap, {
  // ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */
  ak: '百度地图ak',
  // v:'2.0',  // 默认使用3.0
  // type: 'WebGL' // ||API 默认API  (使用此模式 BMap=BMapGL)
});
app.mount('#app');
使用百度地图组件
<script setup lang="ts"></script>

<template>
  <div class="home">
    <baidu-map class="bm-view" center="天安门" :zoom="15">
      <bm-scale anchor="BMAP_ANCHOR_TOP_RIGHT"></bm-scale>
      <bm-label
        content="我爱北京天安门"
        :position="{ lng: 116.404, lat: 39.915 }"
        :labelStyle="{ color: 'red', fontSize: '24px' }"
        title="Hover me"
      />
    </baidu-map>
    <!-- 116.211596,40.143386 -->
  	</div>
	</template>

	<style scoped>
	.home {
 	 width: 100vw;
 	 height: 100vh;
 	 background: #ccc;
	}

	.bm-view {
 	 width: 100%;
 	 height: 100%;
	}
</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android百度地图编程实验总结: 1. 首先,需要在百度地图开放平台注册账号,创建应用,获取应用的AK(密钥),并在Android项目中添加百度地图SDK。 2. 在AndroidManifest.xml文件中添加权限: ``` <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.INTERNET"/> ``` 3. 在布局文件中添加MapView控件,并在Activity中获取MapView对象。 4. 在Activity中实现BaiduMap.OnMapLoadedCallback接口,重写onMapLoaded()方法,在地图加载完成后设置地图中心点、缩放级别、地图类型等属性。 5. 在Activity中获取LocationClient对象,实现BDLocationListener接口,重写onReceiveLocation()方法,在获取到定位信息后,将地图中心点设置为当前位置,并添加标注。 6. 在Activity中添加OverlayOptions对象,设置标注的位置、图标等属性,并将标注添加到地图上。 7. 在Activity中添加OnMarkerClickListener接口,重写onMarkerClick()方法,实现点击标注后弹出信息窗口等功能。 8. 在Activity中添加OnMapClickListener接口,重写onMapClick()方法,实现点击地图后添加标注等功能。 9. 在Activity中添加OnMapLongClickListener接口,重写onMapLongClick()方法,实现长按地图后添加标注等功能。 10. 最后,在Activity中调用LocationClient的start()方法,开始定位。同时,需要在Activity的onDestroy()方法中调用LocationClient的stop()方法,停止定位。 以上就是Android百度地图编程实验的总结,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值