百度地图创建与打点-获取精准定位

百度地图创建与打点-获取精准定位

初始化地图实例

<script type="text/javascript" src="https://api.map.baidu.com/api?type=webgl&v=2.0&ak=自己百度地图申请ak"></script>

<script src="../js/request.js"></script>
<div id="container"></div>


<script>
var map = new BMapGL.Map('container', {
        minZoom: 5,
        maxZoom: 20
});
map.centerAndZoom(new BMapGL.Point(116.514, 39.915), 14);
map.enableScrollWheelZoom(true);
</script>

获取当前精准定位

setOption() {
    // 获取当前经纬度-精准
    let geolocation = new BMapGL.Geolocation();
    geolocation.getCurrentPosition(function (r) {
        if (this.getStatus() == BMAP_STATUS_SUCCESS) {
            // 获取成功,将地图中心移动到当前位置
            let point = new BMapGL.Point(r.longitude, r.latitude);//当前坐标
            // 储存当前坐标
            this.setmap = {
                    longitude: r.longitude,
                    latitude: r.latitude,
            }
            console.log(this.setmap);
            map.centerAndZoom(point, 100);//数字越大显示越详细
            // 添加标注点
            let marker = new BMapGL.Marker(point);
            map.addOverlay(marker);
        }
    });
},

打点路线

var pot1 = new BMapGL.Point("116.40388321804957,39.914884096217335")//经度和纬度
var pot2 = new BMapGL.Point("116.40389267104957,39.914884096217335")
//     // 创建驾车实例
var driv = new BMapGL.DrivingRoute(map)
// 路线规划
driv.search(pot1, pot2,)
driv.setSearchCompleteCallback(function () {
        // 通过驾车实例,获得一系列点的数组
        var pts = driv.getResults().getPlan(0).getRoute(0).getPath()
        var polyline = new BMapGL.Polyline(pts)
        map.addOverlay(polyline)
})
// 给每个点创建Marker
var m1 = new BMapGL.Marker(pot1)
var m2 = new BMapGL.Marker(pot2)
map.addOverlay(m1)
map.addOverlay(m2)
// 自定义文本标注样式
var style = {
    borderRadius: '5px',
    borderColor: '#ccc',
    padding: '5px',
    fontSize: '16px',
    height: '30px',
    lineHeight: '30px',
    fontFamily: '微软雅黑'
}
// 添加说明
var lab1 = new BMapGL.Label('起点', { position: pot1 })
style.backgroundColor = '#00FFFc'
lab1.setStyle(style)
var lab2 = new BMapGL.Label('站点', { position: pot2 })
style.backgroundColor = '#F5F5DC'
lab2.setStyle(style)
map.addOverlay(lab1)
map.addOverlay(lab2)
// 调整视野到最佳
setTimeout(function () {
        map.setViewport([pot1, pot2])
}, 1000)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先需要在Vue项目中引入百度地图JavaScript API。 1. 在`index.html`文件中添加百度地图JavaScript API的引用: ```html <!-- 引入百度地图 JavaScript API --> <script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=您的AK"></script> ``` 其中,`AK`是你在百度地图开发者中心中申请的密钥。 2. 在Vue组件中添加地图容器和定位按钮: ```html <template> <div> <!-- 地图容器 --> <div id="map"></div> <!-- 定位按钮 --> <button @click="getLocation">定位</button> </div> </template> ``` 3. 在Vue组件的`<script>`标签中编写JavaScript代码: ```js export default { data() { return { // 地图对象 map: null, // 定位标记 marker: null, // 定位信息 location: null }; }, methods: { // 初始化地图 initMap() { const map = new BMap.Map('map'); map.centerAndZoom(new BMap.Point(116.404, 39.915), 18); this.map = map; }, // 获取当前位置信息 getLocation() { const geolocation = new BMap.Geolocation(); geolocation.getCurrentPosition( position => { this.location = position; this.showLocation(); }, { enableHighAccuracy: true } ); }, // 在地图上显示位置信息 showLocation() { const { point, address } = this.location; if (!this.marker) { const marker = new BMap.Marker(point); this.map.addOverlay(marker); this.marker = marker; } else { this.marker.setPosition(point); } this.map.panTo(point); alert(`当前位置:${address}`); } }, mounted() { this.initMap(); } }; ``` 在上述代码中,我们首先定义了`map`、`marker`和`location`三个变量,分别表示地图对象、定位标记和位置信息。在`initMap`方法中,我们创建了一个地图对象并将其初始化。在`getLocation`方法中,我们通过`BMap.Geolocation`获取当前位置信息,并将其保存在`location`变量中。然后我们调用`showLocation`方法,在地图上显示定位标记,并弹窗显示当前位置信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李合胜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值